การเพิ่มผู้ใช้ Ubuntu การจัดการผู้ใช้ การเข้าถึง SSH โดยผู้ใช้ที่ถูกบล็อก

การจัดการผู้ใช้เป็นส่วนสำคัญในการรักษาระบบที่ปลอดภัย การจัดการผู้ใช้และสิทธิพิเศษที่ไม่มีประสิทธิภาพมักจะทำให้ระบบต่างๆ จำนวนมากถูกโจมตี ดังนั้นจึงเป็นสิ่งสำคัญที่คุณจะต้องเข้าใจวิธีที่คุณสามารถปกป้องเซิร์ฟเวอร์ของคุณผ่านเทคนิคการจัดการบัญชีผู้ใช้ที่เรียบง่ายและมีประสิทธิภาพ

นักพัฒนา Ubuntu ตัดสินใจอย่างสมเหตุสมผลที่จะปิดการใช้งานบัญชีรูทผู้ดูแลระบบตามค่าเริ่มต้นในการติดตั้ง Ubuntu ทั้งหมด นี่ไม่ได้หมายความว่าบัญชีรูทถูกลบไปแล้วหรือไม่สามารถเข้าถึงได้ เพียงแต่ได้รับรหัสผ่านซึ่งไม่ตรงกับค่าที่เข้ารหัสที่เป็นไปได้ ดังนั้นจึงไม่สามารถเข้าสู่ระบบได้โดยตรง

ขอแนะนำให้ผู้ใช้ใช้เครื่องมือชื่อ sudo เพื่อทำหน้าที่ดูแลระบบแทน Sudo อนุญาตให้ผู้ใช้ที่ได้รับอนุญาตยกระดับสิทธิ์ชั่วคราวโดยใช้รหัสผ่านของตนเอง แทนที่จะต้องรู้รหัสผ่านที่เป็นของบัญชีรูท วิธีการที่เรียบง่ายแต่มีประสิทธิภาพนี้ให้ความรับผิดชอบต่อการกระทำของผู้ใช้ทั้งหมด และให้ผู้ดูแลระบบควบคุมได้อย่างละเอียดว่าผู้ใช้สามารถดำเนินการใดได้บ้างด้วยสิทธิ์ดังกล่าว

    หากคุณต้องการเปิดใช้งานบัญชีรูทด้วยเหตุผลบางประการ เพียงให้รหัสผ่าน:

    ไม่รองรับการกำหนดค่าด้วยรหัสผ่านรูท

    sudo passwd

    Sudo จะแจ้งให้คุณใส่รหัสผ่าน จากนั้นขอให้คุณระบุรหัสผ่านใหม่สำหรับ root ดังที่แสดงด้านล่าง:

    รหัสผ่านสำหรับชื่อผู้ใช้: (ป้อนรหัสผ่านของคุณเอง) ป้อนรหัสผ่าน UNIX ใหม่: (ป้อนรหัสผ่านใหม่สำหรับรูท)พิมพ์รหัสผ่าน UNIX ใหม่อีกครั้ง: (ทำซ้ำรหัสผ่านใหม่สำหรับรูท) passwd: อัปเดตรหัสผ่านเรียบร้อยแล้ว

    หากต้องการปิดใช้งานรหัสผ่านบัญชีรูท ให้ใช้ไวยากรณ์ passwd ต่อไปนี้:

    sudo passwd -l รูท

    อย่างไรก็ตาม หากต้องการปิดใช้งานบัญชีรูทเอง ให้ใช้คำสั่งต่อไปนี้:

    usermod --หมดอายุ 1

    คุณควรอ่านเพิ่มเติมเกี่ยวกับ Sudo โดยอ่านหน้าคน:

    ผู้ชายซูโด

ตามค่าเริ่มต้น ผู้ใช้คนแรกที่สร้างโดยโปรแกรมติดตั้ง Ubuntu จะเป็นสมาชิกของกลุ่ม "sudo " ซึ่งถูกเพิ่มลงในไฟล์ /etc/sudoers ในฐานะผู้ใช้ sudo ที่ได้รับอนุญาต หากคุณต้องการให้บัญชีอื่นเข้าถึงรูทโดยสมบูรณ์ผ่าน sudo เพียงเพิ่มบัญชีเหล่านั้นเข้าในกลุ่ม sudo

การเพิ่มและการลบผู้ใช้

กระบวนการจัดการผู้ใช้และกลุ่มภายในนั้นตรงไปตรงมาและแตกต่างจากระบบปฏิบัติการ GNU/Linux อื่นๆ เพียงเล็กน้อย Ubuntu และการกระจายแบบ Debian อื่นๆ สนับสนุนการใช้แพ็คเกจ "adduser" สำหรับการจัดการบัญชี

    หากต้องการเพิ่มบัญชีผู้ใช้ ให้ใช้ไวยากรณ์ต่อไปนี้ และปฏิบัติตามคำแนะนำในการให้รหัสผ่านและคุณลักษณะที่สามารถระบุตัวบุคคลแก่บัญชีได้ เช่น ชื่อนามสกุล หมายเลขโทรศัพท์ ฯลฯ

    ชื่อผู้ใช้ sudo adduser

    หากต้องการลบบัญชีผู้ใช้และกลุ่มหลัก ให้ใช้ไวยากรณ์ต่อไปนี้:

    ชื่อผู้ใช้ sudo deluser

    การลบบัญชีจะไม่ลบโฮมโฟลเดอร์ที่เกี่ยวข้อง ขึ้นอยู่กับคุณว่าคุณต้องการลบโฟลเดอร์ด้วยตนเองหรือเก็บไว้ตามนโยบายการเก็บรักษาที่คุณต้องการ

    โปรดจำไว้ว่า ผู้ใช้ใดๆ ที่เพิ่มในภายหลังด้วย UID/GID เดียวกันกับเจ้าของคนก่อนจะสามารถเข้าถึงโฟลเดอร์นี้ได้ หากคุณไม่ได้ใช้มาตรการป้องกันที่จำเป็น

    คุณอาจต้องการเปลี่ยนค่า UID/GID เหล่านี้ให้เหมาะสมกว่า เช่น บัญชีรูท และอาจย้ายตำแหน่งโฟลเดอร์เพื่อหลีกเลี่ยงข้อขัดแย้งในอนาคต:

    sudo chown -R root:root /home/username/ sudo mkdir /home/archived_users/ sudo mv /home/ชื่อผู้ใช้ /home/archived_users/

    หากต้องการล็อคหรือปลดล็อคบัญชีผู้ใช้ชั่วคราว ให้ใช้ไวยากรณ์ต่อไปนี้ตามลำดับ:

    ชื่อผู้ใช้ sudo passwd -l ชื่อผู้ใช้ sudo passwd -u

    หากต้องการเพิ่มหรือลบกลุ่มส่วนบุคคล ให้ใช้ไวยากรณ์ต่อไปนี้ ตามลำดับ:

    sudo addgroup groupname sudo delgroup ชื่อกลุ่ม

    หากต้องการเพิ่มผู้ใช้ในกลุ่ม ให้ใช้ไวยากรณ์ต่อไปนี้:

    ชื่อกลุ่มชื่อผู้ใช้ sudo adduser

ความปลอดภัยของโปรไฟล์ผู้ใช้

เมื่อมีการสร้างผู้ใช้ใหม่ ยูทิลิตี้ adduser จะสร้างโฮมไดเร็กตอรี่ใหม่ชื่อ /home/username โปรไฟล์ดีฟอลต์จะถูกจำลองตามเนื้อหาที่พบในไดเร็กทอรีของ /etc/skel ซึ่งรวมถึงโปรไฟล์พื้นฐานทั้งหมด

หากเซิร์ฟเวอร์ของคุณจะเป็นบ้านสำหรับผู้ใช้หลายคน คุณควรใส่ใจกับการอนุญาตโฮมไดเร็กตอรี่ของผู้ใช้อย่างใกล้ชิดเพื่อให้แน่ใจว่าจะเป็นความลับ ตามค่าเริ่มต้น โฮมไดเร็กทอรีของผู้ใช้ใน Ubuntu จะถูกสร้างขึ้นด้วยสิทธิ์การอ่าน/ดำเนินการทั่วโลก ซึ่งหมายความว่าผู้ใช้ทุกคนสามารถเรียกดูและเข้าถึงเนื้อหาของโฮมไดเร็กทอรีของผู้ใช้รายอื่นได้ สิ่งนี้อาจไม่เหมาะกับสภาพแวดล้อมของคุณ

    หากต้องการตรวจสอบสิทธิ์โฮมไดเร็กทอรีของผู้ใช้ปัจจุบันของคุณ ให้ใช้ไวยากรณ์ต่อไปนี้:

    ls -ld /home/ชื่อผู้ใช้

    ผลลัพธ์ต่อไปนี้แสดงว่าไดเร็กทอรี /home/username มีสิทธิ์ที่สามารถอ่านได้ทั่วโลก:

    drwxr-xr-x 2 ชื่อผู้ใช้ ชื่อผู้ใช้ 4096 2007-10-02 20:03 ชื่อผู้ใช้

    คุณสามารถลบสิทธิ์การอ่านของโลกได้โดยใช้ไวยากรณ์ต่อไปนี้:

    sudo chmod 0750 /home/ชื่อผู้ใช้

    บางคนมีแนวโน้มที่จะใช้ตัวเลือกแบบเรียกซ้ำ (-R) โดยไม่เลือกปฏิบัติ ซึ่งจะแก้ไขโฟลเดอร์และไฟล์ย่อยทั้งหมด แต่ไม่จำเป็น และอาจให้ผลลัพธ์ที่ไม่พึงประสงค์อื่นๆ ไดเร็กทอรีพาเรนต์เพียงอย่างเดียวก็เพียงพอแล้วสำหรับการป้องกันการเข้าถึงสิ่งใดก็ตามที่อยู่ต่ำกว่าพาเรนต์โดยไม่ได้รับอนุญาต

    แนวทางที่มีประสิทธิภาพมากขึ้นในเรื่องนี้คือการแก้ไขการอนุญาตเริ่มต้นส่วนกลางของ adduser เมื่อสร้างโฮมโฟลเดอร์ของผู้ใช้ เพียงแก้ไขไฟล์ /etc/adduser.conf และแก้ไขตัวแปร DIR_MODE เป็นสิ่งที่เหมาะสม เพื่อให้โฮมไดเร็กทอรีใหม่ทั้งหมดได้รับการอนุญาตที่ถูกต้อง

    หลังจากแก้ไขการอนุญาตไดเรกทอรีโดยใช้เทคนิคใดๆ ที่กล่าวถึงก่อนหน้านี้ ให้ตรวจสอบผลลัพธ์โดยใช้ไวยากรณ์ต่อไปนี้:

    ls -ld /home/ชื่อผู้ใช้

    ผลลัพธ์ด้านล่างแสดงว่าการอนุญาตที่โลกอ่านได้ได้ถูกลบออกแล้ว:

    drwxr-x --- 2 ชื่อผู้ใช้ ชื่อผู้ใช้ 4096 2007-10-02 20:03 ชื่อผู้ใช้

นโยบายรหัสผ่าน

นโยบายรหัสผ่านที่รัดกุมถือเป็นส่วนที่สำคัญที่สุดประการหนึ่งของมาตรการรักษาความปลอดภัยของคุณ การละเมิดความปลอดภัยที่ประสบความสำเร็จจำนวนมากเกี่ยวข้องกับการใช้กำลังดุร้ายและการโจมตีด้วยพจนานุกรมต่อรหัสผ่านที่อ่อนแอ หากคุณตั้งใจที่จะเสนอการเข้าถึงระยะไกลในรูปแบบใดๆ ที่เกี่ยวข้องกับระบบรหัสผ่านในเครื่องของคุณ ตรวจสอบให้แน่ใจว่าคุณได้จัดการข้อกำหนดความซับซ้อนของรหัสผ่านขั้นต่ำ อายุรหัสผ่านสูงสุด และการตรวจสอบระบบการตรวจสอบความถูกต้องเป็นประจำ

ความยาวรหัสผ่านขั้นต่ำ

ตามค่าเริ่มต้น Ubuntu กำหนดให้มีความยาวรหัสผ่านขั้นต่ำ 6 ตัวอักษร รวมถึงการตรวจสอบเอนโทรปีพื้นฐานบางอย่าง ค่าเหล่านี้ถูกควบคุมในไฟล์ /etc/pam.d/common-password ซึ่งแสดงไว้ด้านล่าง

รหัสผ่าน pam_unix.so คลุมเครือ sha512

หากคุณต้องการปรับความยาวขั้นต่ำเป็น 8 ตัวอักษร ให้เปลี่ยนตัวแปรที่เหมาะสมเป็น min=8 การปรับเปลี่ยนมีรายละเอียดดังนี้

รหัสผ่าน pam_unix.so คลุมเครือ sha512 minlen=8

การตรวจสอบเอนโทรปีรหัสผ่านพื้นฐานและกฎความยาวขั้นต่ำใช้ไม่ได้กับผู้ดูแลระบบที่ใช้คำสั่งระดับ sudo เพื่อตั้งค่าผู้ใช้ใหม่

รหัสผ่านหมดอายุ

เมื่อสร้างบัญชีผู้ใช้ คุณควรกำหนดนโยบายให้มีอายุรหัสผ่านขั้นต่ำและสูงสุด โดยบังคับให้ผู้ใช้เปลี่ยนรหัสผ่านเมื่อรหัสผ่านหมดอายุ

    หากต้องการดูสถานะปัจจุบันของบัญชีผู้ใช้อย่างง่ายดาย ให้ใช้ไวยากรณ์ต่อไปนี้:

    sudo chage -l ชื่อผู้ใช้

    ผลลัพธ์ด้านล่างแสดงข้อเท็จจริงที่น่าสนใจเกี่ยวกับบัญชีผู้ใช้ กล่าวคือ ไม่มีการใช้นโยบาย:

    การเปลี่ยนรหัสผ่านครั้งล่าสุด: 20 มกราคม 2558 รหัสผ่านหมดอายุ: ไม่เคย รหัสผ่านไม่ทำงาน: ไม่เคย บัญชีหมดอายุ: ไม่เคย จำนวนวันขั้นต่ำระหว่างการเปลี่ยนรหัสผ่าน: 0 จำนวนวันสูงสุดระหว่างการเปลี่ยนรหัสผ่าน: 99999 จำนวนวันที่เตือนก่อนที่รหัสผ่านจะหมดอายุ: 7

    หากต้องการตั้งค่าใดๆ เหล่านี้ เพียงใช้ไวยากรณ์ต่อไปนี้ และปฏิบัติตามพร้อมท์แบบโต้ตอบ:

    sudo เปลี่ยนชื่อผู้ใช้

    ต่อไปนี้เป็นตัวอย่างของวิธีที่คุณสามารถเปลี่ยนวันหมดอายุที่ชัดเจน (-E) เป็น 01/31/2015 ด้วยตนเอง อายุรหัสผ่านขั้นต่ำ (-m) 5 วัน อายุรหัสผ่านสูงสุด (-M) 90 วัน ไม่มีการใช้งาน ระยะเวลา (-I) คือ 5 วันหลังจากรหัสผ่านหมดอายุ และระยะเวลาเตือน (-W) 14 วันก่อนรหัสผ่านหมดอายุ:/home/username/.ssh/authorized_keys

    ลบหรือเปลี่ยนชื่อไดเร็กทอรี .ssh/ ในโฮมโฟลเดอร์ของผู้ใช้ เพื่อป้องกันความสามารถในการตรวจสอบสิทธิ์ SSH เพิ่มเติม

    อย่าลืมตรวจสอบการเชื่อมต่อ SSH ที่สร้างขึ้นโดยผู้ใช้ที่ถูกปิดใช้งาน เนื่องจากเป็นไปได้ว่าอาจมีการเชื่อมต่อขาเข้าหรือขาออกอยู่ ฆ่าสิ่งใด ๆ ที่พบ

    ใคร | ชื่อผู้ใช้ grep (เพื่อรับเทอร์มินัล pts/#) sudo pkill -f pts/#

    จำกัดการเข้าถึง SSH เฉพาะบัญชีผู้ใช้ที่ควรมีเท่านั้น ตัวอย่างเช่น คุณสามารถสร้างกลุ่มชื่อ "sshlogin" และเพิ่มชื่อกลุ่มเป็นค่าที่เกี่ยวข้องกับตัวแปร AllowGroups ที่อยู่ในไฟล์ /etc/ssh/sshd_config

    sshlogin ของ AllowGroups

    จากนั้นเพิ่มผู้ใช้ SSH ที่ได้รับอนุญาตของคุณในกลุ่ม "sshlogin" แล้วเริ่มบริการ SSH ใหม่

    sudo adduser ชื่อผู้ใช้ sshlogin sudo systemctl รีสตาร์ท sshd.service

    การตรวจสอบฐานข้อมูลผู้ใช้ภายนอก

    เครือข่ายองค์กรส่วนใหญ่ต้องการการรับรองความถูกต้องแบบรวมศูนย์และการควบคุมการเข้าถึงสำหรับทรัพยากรระบบทั้งหมด หากคุณได้กำหนดค่าเซิร์ฟเวอร์ของคุณเพื่อตรวจสอบสิทธิ์ผู้ใช้กับฐานข้อมูลภายนอก ตรวจสอบให้แน่ใจว่าได้ปิดการใช้งานบัญชีผู้ใช้ทั้งภายนอกและภายในเครื่อง วิธีนี้จะทำให้คุณมั่นใจได้ว่าไม่สามารถตรวจสอบสิทธิ์ทางเลือกในเครื่องได้

ในบทช่วยสอนนี้ เราจะดูวิธีการลบผู้ใช้ Linux พร้อมกับข้อมูลและโฮมไดเร็กตอรี่ของเขา

หากคุณเป็นผู้ดูแลระบบในบริษัทขนาดใหญ่ การลบผู้ใช้ Linux ถือเป็นงานที่ค่อนข้างธรรมดาสำหรับคุณ หลังจากที่บัญชีกลายเป็นสิ่งที่ไม่จำเป็นหรือผู้ใช้ออกจากองค์กร บัญชีของเขาควรถูกลบเพื่อไม่ให้ทิ้งช่องโหว่ด้านความปลอดภัย

เมื่อลบผู้ใช้ Linux สิ่งสำคัญคือต้องลบโฮมไดเร็กตอรี่เพื่อเพิ่มพื้นที่เก็บข้อมูลสำหรับผู้ใช้ใหม่และไฟล์ของพวกเขา ก่อนอื่นเราจะดูวิธีการลบผู้ใช้ Linux โดยใช้เทอร์มินัลจากนั้นเราจะพูดถึงวิธีการดำเนินการนี้ในส่วนต่อประสานกราฟิกของหนึ่งในดิสทริบิวชันที่ได้รับความนิยมมากที่สุด - Ubuntu

เพื่อฝึกฝนในสภาพแวดล้อมจริง เรามาสร้างผู้ใช้สองคน ได้แก่ losst และ losst1 พร้อมด้วยโฮมไดเร็กทอรีของพวกเขา จากนั้นจึงลบออก:

การสูญเสียผู้ใช้เพิ่มเติม
$ passwd หายไป

ส่วนเสริมสูญเสีย 1
$passwd losst1

ที่นี่คำสั่ง adduser ใช้เพื่อสร้างบัญชีผู้ใช้และ passwd เพื่อสร้างรหัสผ่าน

มาดูวิธีการลบผู้ใช้ Linux ในเทอร์มินัล หากต้องการทำสิ่งนี้ให้ใช้คำสั่ง - deluser ในระบบเดเบียนและอนุพันธ์และใน RedHat - userdel มาดูยูทิลิตี้ทั้งสองนี้ให้ละเอียดยิ่งขึ้น

คำอธิบายของ deluser

ไวยากรณ์คำสั่ง deluser นั้นง่ายมาก:

ผู้ใช้พารามิเตอร์ $deluser

การตั้งค่าคำสั่ง deluser อยู่ในไฟล์ /etc/deluser.conf ท่ามกลางการตั้งค่าอื่นๆ จะระบุสิ่งที่ต้องทำกับโฟลเดอร์หลักและไฟล์ของผู้ใช้

คุณสามารถดูและเปลี่ยนแปลงการตั้งค่าเหล่านี้ได้โดยการรันคำสั่ง:

vi /etc/deluser.conf

มาดูการตั้งค่าเหล่านี้ให้ละเอียดยิ่งขึ้น:

  • REMOVE_HOME- ลบโฮมไดเร็กตอรี่ของผู้ใช้
  • REMOVE_ALL_FILES- ลบไฟล์ผู้ใช้ทั้งหมด
  • การสำรองข้อมูล- สำรองไฟล์ผู้ใช้
  • สำรอง_TO- โฟลเดอร์สำรอง
  • เท่านั้น_IF_EMPTY- ลบกลุ่มผู้ใช้หากว่างเปล่า

การตั้งค่าเหล่านี้จะกำหนดพฤติกรรมเริ่มต้นของยูทิลิตี้เมื่อลบผู้ใช้ แน่นอนว่าสามารถแทนที่ได้โดยใช้พารามิเตอร์สำหรับคำสั่ง

รองรับพารามิเตอร์ต่อไปนี้ซึ่งคล้ายกับการตั้งค่า แต่มีตัวเลือกเพิ่มเติม:

  • --ระบบ- ลบเฉพาะในกรณีที่เป็นผู้ใช้ระบบ
  • --การสำรองข้อมูล- ทำสำเนาสำรองของไฟล์ผู้ใช้
  • --สำรอง-to- โฟลเดอร์สำหรับสำรองข้อมูล
  • --ลบ-บ้าน- ลบโฟลเดอร์บ้าน
  • --ลบไฟล์ทั้งหมด- ลบไฟล์ผู้ใช้ทั้งหมดในระบบไฟล์

คำอธิบายของ userdel

ยูทิลิตี้ userdel ทำงานแตกต่างออกไปเล็กน้อยไม่มีไฟล์การตั้งค่าที่นี่ แต่มีตัวเลือกที่คุณสามารถบอกยูทิลิตี้ได้ว่าต้องทำอะไร ไวยากรณ์คล้ายกัน:

ผู้ใช้พารามิเตอร์ $ userdel

  • -f, --บังคับ- บังคับให้ลบ แม้ว่าผู้ใช้จะยังเข้าสู่ระบบอยู่ก็ตาม
  • -r, --ลบ- ลบโฮมไดเร็กตอรี่ของผู้ใช้และไฟล์ของเขาในระบบ
  • -Z- ลบวัตถุ SELinux ทั้งหมดสำหรับผู้ใช้รายนี้

หากต้องการลบผู้ใช้ออกจากเซิร์ฟเวอร์ จะเป็นการดีกว่าถ้าใช้วิธีขั้นสูงซึ่งเราจะพิจารณาด้านล่าง เมื่อผู้ใช้ใช้เซิร์ฟเวอร์ พวกเขาจะเปิดโปรแกรมและบริการต่างๆ สามารถลบผู้ใช้สามารถลบได้อย่างถูกต้องเฉพาะในกรณีที่เขาไม่ได้เข้าสู่ระบบเซิร์ฟเวอร์และโปรแกรมทั้งหมดที่ทำงานในนามของเขาหยุดทำงานเนื่องจากโปรแกรมสามารถใช้ไฟล์ต่าง ๆ ที่เป็นของผู้ใช้และสิ่งนี้จะป้องกันไม่ให้ถูกลบ ดังนั้นไฟล์ของผู้ใช้จะไม่ถูกลบทั้งหมดและจะยังคงอุดตันระบบ

การบล็อกบัญชีผู้ใช้

คุณสามารถใช้ยูทิลิตี้ passwd เพื่อล็อคบัญชีผู้ใช้ สิ่งนี้จะปฏิเสธการเข้าถึงของผู้ใช้ไปยังระบบและป้องกันไม่ให้กระบวนการใหม่เริ่มต้นขึ้น:

รันคำสั่ง passwd ด้วยตัวเลือก --lock:

passwd --ล็อคการสูญเสีย

passwd: ข้อมูลการหมดอายุของรหัสผ่านมีการเปลี่ยนแปลง

ฆ่ากระบวนการผู้ใช้ที่ทำงานอยู่ทั้งหมด

ตอนนี้เรามาดูกระบวนการทั้งหมดที่ทำงานในฐานะผู้ใช้แล้วฆ่าพวกมัน

เรามาค้นหากระบวนการโดยใช้ pgrep:

คุณสามารถดูรายละเอียดเพิ่มเติมว่ากระบวนการเหล่านี้คืออะไรโดยส่ง pid ของแต่ละกระบวนการไปยังคำสั่ง ps เช่นนี้

PS -f --pid $ (pgrep -u losst)

UID PID PPID C STIME TTY สถิติเวลา CMD
losst 14684 14676 0 22:15 pts/2 S 0:00 -bash
losst 14735 14684 0 22:15 pts/2 S+ 0:00 vi ข้อความ

ตอนนี้คุณได้แน่ใจว่าไม่มีอะไรสำคัญแล้ว คุณสามารถฆ่ากระบวนการทั้งหมดได้โดยใช้คำสั่ง killall:

คิลอล -9 -คุณแพ้แล้ว

ตัวเลือก -9 บอกให้โปรแกรมส่งสัญญาณการยุติ SIGKILL ไปยังกระบวนการเหล่านี้ และ -u ระบุชื่อผู้ใช้

บนระบบที่ใช้ Red Hat หากต้องการใช้ killall คุณจะต้องติดตั้งแพ็คเกจ psmisc:

sudo yum ติดตั้ง psmisc

การสำรองข้อมูลผู้ใช้

สิ่งนี้ไม่จำเป็นเลย แต่สำหรับโครงการที่จริงจัง การสร้างสำเนาสำรองของไฟล์ของผู้ใช้ก็ไม่ใช่ความคิดที่ดี โดยเฉพาะอย่างยิ่งหากอาจมีไฟล์สำคัญอยู่ที่นั่น ในการดำเนินการนี้ คุณสามารถใช้ยูทิลิตี้ tar เช่น:

tar jcvf /ผู้ใช้สำรองข้อมูล/losst-backup.tar.bz2 /home/losst

การลบบัญชีผู้ใช้

เมื่อทุกอย่างพร้อมแล้ว เรามาเริ่มลบผู้ใช้ Linux กันดีกว่า ในกรณีนี้ เราจะระบุอย่างชัดเจนว่าเราจำเป็นต้องลบไฟล์และโฮมไดเร็กทอรีของผู้ใช้ สำหรับเดเบียน:

deluser --remove-home losst

userdel --ลบการสูญเสีย

หากคุณต้องการลบไฟล์ทั้งหมดที่เป็นของผู้ใช้ในระบบ ให้ใช้ตัวเลือก --remove-all-files เพียงใช้ความระมัดระวัง เนื่องจากไฟล์สำคัญสามารถถูกเขียนทับได้:

deluser --remove-all-files losst

ขณะนี้ผู้ใช้จะถูกลบออกทั้งหมดพร้อมกับไฟล์และโฮมไดเร็กตอรี่ของเขาออกจากระบบของคุณ

การลบผู้ใช้ใน Ubuntu

เปิด พารามิเตอร์ของระบบ:

เปิดรายการ บัญชี:

อย่างที่คุณเห็น การดำเนินการทั้งหมดไม่สามารถใช้งานได้ในขณะนี้และเป็นสีเทา หากต้องการเปิดใช้งานให้คลิกปุ่ม ปลดล็อคและป้อนรหัสผ่านผู้ใช้

ตอนนี้เพื่อที่จะลบผู้ใช้ใน Linux เพียงคลิกเมาส์แล้วคลิกไอคอนลบ

ในหน้าต่างที่เปิดขึ้น คุณสามารถเลือกการดำเนินการกับไฟล์ผู้ใช้ได้:

โดยปกติแล้วจะมีเพียงโฟลเดอร์โฮมเท่านั้นที่จะถูกลบ เราไม่ได้พูดถึงไฟล์ทั้งหมด และเพื่อการกำจัดที่ถูกต้องผู้ใช้จะต้องไม่ได้ทำงานอยู่ในระบบ

ข้อสรุป

การลบผู้ใช้ใน Linux ไม่ใช่เรื่องยาก ไม่ว่าจะต้องดำเนินการที่ไหน บนเซิร์ฟเวอร์หรือคอมพิวเตอร์ที่บ้าน แน่นอนว่าอินเทอร์เฟซแบบกราฟิกนั้นสะดวกกว่า แต่เทอร์มินัลก็มีตัวเลือกเพิ่มเติมเช่นเคย หากคุณมีความคิดเห็นอื่น ๆ เกี่ยวกับเรื่องนี้ โปรดแสดงความคิดเห็น!

ระบบปฏิบัติการ Linux มีคุณสมบัติด้านความปลอดภัยที่ยอดเยี่ยมมากมาย แต่คุณสมบัติที่สำคัญที่สุดประการหนึ่งคือระบบการอนุญาตไฟล์ ลินุกซ์ในฐานะผู้ติดตามอุดมการณ์เคอร์เนลลินุกซ์ ต่างจากวินโดวส์ เดิมทีได้รับการออกแบบให้เป็นระบบที่มีผู้ใช้หลายคน ดังนั้นสิทธิ์การเข้าถึงไฟล์ในลีนุกซ์จึงได้รับการพิจารณาเป็นอย่างดี

และนี่เป็นสิ่งสำคัญมากเนื่องจากการเข้าถึงไฟล์ในเครื่องสำหรับโปรแกรมทั้งหมดและผู้ใช้ทั้งหมดจะทำให้ไวรัสทำลายระบบได้ง่าย แต่ผู้ใช้ใหม่อาจพบว่าการอนุญาตไฟล์ใหม่ใน Linux ทำให้เกิดความสับสนอย่างมาก ซึ่งแตกต่างจากสิ่งที่เราคุ้นเคยใน Windows มาก ในบทความนี้เราจะพยายามทำความเข้าใจว่าการอนุญาตของไฟล์ทำงานอย่างไรใน Linux รวมถึงวิธีเปลี่ยนแปลงและตั้งค่า

เริ่มแรก แต่ละไฟล์มีพารามิเตอร์การเข้าถึงสามพารามิเตอร์ พวกเขาอยู่ที่นี่:

  • การอ่าน- อนุญาตให้คุณรับเนื้อหาของไฟล์ แต่ไม่อนุญาตให้เขียน สำหรับไดเร็กทอรี อนุญาตให้คุณรับรายการไฟล์และไดเร็กทอรีที่อยู่ในนั้น
  • บันทึก- ช่วยให้คุณเขียนข้อมูลใหม่ลงในไฟล์หรือเปลี่ยนแปลงข้อมูลที่มีอยู่และยังช่วยให้คุณสร้างและเปลี่ยนแปลงไฟล์และไดเร็กทอรี
  • ผลงาน- คุณไม่สามารถรันโปรแกรมได้หากไม่มีแฟล็กรัน คุณลักษณะนี้ถูกตั้งค่าไว้สำหรับโปรแกรมและสคริปต์ทั้งหมดโดยช่วยให้ระบบสามารถเข้าใจได้ว่าไฟล์นี้จำเป็นต้องเรียกใช้เป็นโปรแกรม

แต่สิทธิ์เหล่านี้จะไม่มีความหมายหากนำไปใช้กับผู้ใช้ทุกคนพร้อมกัน ดังนั้นแต่ละไฟล์จึงมีหมวดหมู่ผู้ใช้สามประเภทซึ่งคุณสามารถตั้งค่าสิทธิ์การเข้าถึงที่แตกต่างกันได้:

  • เจ้าของ- ชุดสิทธิ์สำหรับเจ้าของไฟล์ ผู้ใช้ที่สร้างไฟล์หรือกำหนดโดยเจ้าของไฟล์ โดยทั่วไปแล้วเจ้าของจะมีสิทธิ์ทั้งหมด อ่าน เขียน และดำเนินการ
  • กลุ่ม- กลุ่มผู้ใช้ใด ๆ ที่มีอยู่ในระบบและเชื่อมโยงกับไฟล์ แต่นี้สามารถเป็นกลุ่มได้เพียงกลุ่มเดียวและโดยปกติจะเป็นกลุ่มของเจ้าของ แม้ว่าจะสามารถกำหนดกลุ่มอื่นให้กับไฟล์ได้ก็ตาม
  • พักผ่อน- ผู้ใช้ทั้งหมดยกเว้นเจ้าของและผู้ใช้ที่รวมอยู่ในกลุ่มไฟล์

ด้วยความช่วยเหลือของชุดการอนุญาตเหล่านี้การตั้งค่าการอนุญาตของไฟล์ใน Linux ผู้ใช้แต่ละรายจะสามารถเข้าถึงไฟล์ที่ตนเองเป็นเจ้าของหรือได้รับอนุญาตให้เข้าถึงได้อย่างเต็มที่เท่านั้น มีเพียงผู้ใช้รูทเท่านั้นที่สามารถทำงานกับไฟล์ทั้งหมดได้ โดยไม่คำนึงถึงสิทธิ์ที่กำหนดไว้

แต่เมื่อเวลาผ่านไป ระบบดังกล่าวไม่เพียงพอและมีการเพิ่มแฟล็กอีกหลายรายการที่ทำให้ไฟล์ไม่สามารถเปลี่ยนแปลงได้หรือดำเนินการเป็น superuser เราจะดูด้านล่าง:

การอนุญาตไฟล์พิเศษใน Linux

เพื่อให้ผู้ใช้ทั่วไปสามารถรันโปรแกรมในนามของ superuser โดยไม่ต้องรู้รหัสผ่าน จึงมีการประดิษฐ์บิต SUID และ SGID ขึ้นมา มาดูพลังเหล่านี้กันดีกว่า

  • ซูด- หากตั้งค่าบิตนี้ เมื่อรันโปรแกรม ID ของผู้ใช้ที่เรียกใช้งานจะถูกแทนที่ด้วย ID ของเจ้าของไฟล์ ส่งผลให้ผู้ใช้ทั่วไปสามารถรันโปรแกรมในฐานะ superuser ได้
  • เอสจีดี- การตั้งค่าสถานะนี้ทำงานในลักษณะเดียวกัน ข้อแตกต่างเพียงอย่างเดียวคือผู้ใช้จะถือว่าเป็นสมาชิกของกลุ่มที่เชื่อมโยงกับไฟล์ ไม่ใช่กลุ่มที่เขาเป็นสมาชิกจริงๆ หากตั้งค่าสถานะ SGID บนไดเร็กทอรี ไฟล์ทั้งหมดที่สร้างขึ้นในไดเร็กทอรีจะเชื่อมโยงกับกลุ่มของไดเร็กทอรี ไม่ใช่ของผู้ใช้ ลักษณะการทำงานนี้ใช้เพื่อจัดระเบียบโฟลเดอร์ที่ใช้ร่วมกัน
  • เหนียวนิดหน่อย- บิตนี้ยังใช้เพื่อสร้างโฟลเดอร์แชร์ด้วย หากมีการติดตั้ง ผู้ใช้จะสามารถสร้าง อ่าน และดำเนินการไฟล์ได้เท่านั้น แต่ไม่สามารถลบไฟล์ที่เป็นของผู้ใช้รายอื่นได้

ตอนนี้เรามาดูวิธีการดูและเปลี่ยนแปลงการอนุญาตของไฟล์ใน Linux

วิธีดูการอนุญาตไฟล์ใน Linux

แน่นอนคุณสามารถดูการอนุญาตไฟล์ใน Linux ได้โดยใช้ตัวจัดการไฟล์ ทั้งหมดรองรับฟีเจอร์นี้ แต่จะให้ข้อมูลที่ไม่สมบูรณ์แก่คุณ สำหรับข้อมูลโดยละเอียดที่สุดเกี่ยวกับแฟล็กทั้งหมด รวมถึงแฟล็กพิเศษ คุณต้องใช้คำสั่ง ls พร้อมกับพารามิเตอร์ -l ไฟล์ทั้งหมดในไดเร็กทอรีจะแสดงรายการและแอตทริบิวต์และบิตทั้งหมดจะแสดงอยู่ที่นั่น

หากต้องการค้นหาสิทธิ์ในไฟล์ linux ให้รันคำสั่งต่อไปนี้ในโฟลเดอร์ที่มีไฟล์อยู่:

ขีดกลางมีหน้าที่รับผิดชอบในการอนุญาตไฟล์ใน Linux อย่างแรกคือประเภทไฟล์ซึ่งจะกล่าวถึงในบทความแยกต่างหาก จากนั้นจะมีกลุ่มของสิทธิ์ อันดับแรกสำหรับเจ้าของ สำหรับกลุ่ม และสำหรับคนอื่นๆ ใบอนุญาตมีขีดกลางเพียงเก้าขีดและหนึ่งขีดสำหรับประเภท

มาดูกันดีกว่าว่าค่าสถานะตามเงื่อนไขของแฟล็กสิทธิ์หมายถึงอะไร:

  • --- - ไม่มีสิทธิ์เลย;
  • --x- อนุญาตให้รันไฟล์ในรูปแบบโปรแกรมเท่านั้น แต่ไม่สามารถเปลี่ยนแปลงหรืออ่านได้
  • -ว-- อนุญาตให้เขียนและเปลี่ยนไฟล์เท่านั้น
  • -wx- อนุญาตให้แก้ไขและดำเนินการได้ แต่ในกรณีของไดเรกทอรี คุณไม่สามารถดูเนื้อหาได้
  • ร--- สิทธิ์แบบอ่านอย่างเดียว
  • r-x- อ่านและดำเนินการเท่านั้น ไม่มีสิทธิ์ในการเขียน
  • ร-- สิทธิ์ในการอ่านและเขียน แต่ไม่มีการดำเนินการ
  • rwx- สิทธิทั้งหมด;
  • --ส- ตั้งค่าบิต SUID หรือ SGID บิตแรกจะแสดงในฟิลด์สำหรับเจ้าของส่วนที่สองสำหรับกลุ่ม
  • --t- ติดตั้ง Sticky-bit ซึ่งหมายความว่าผู้ใช้ไม่สามารถลบไฟล์นี้ได้

ในตัวอย่างของเรา ไฟล์ test1 มีสิทธิ์อนุญาตโปรแกรมทั่วไป เจ้าของสามารถทำทุกอย่างได้ กลุ่มสามารถอ่านและดำเนินการได้เท่านั้น และทุกคนสามารถดำเนินการได้เท่านั้น สำหรับ test2 จะมีการตั้งค่าสถานะ SUID และ SGID เพิ่มเติม และสำหรับโฟลเดอร์ test3 Sticky-bit ได้รับการติดตั้งแล้ว ไฟล์ test4 พร้อมใช้งานสำหรับทุกคน ตอนนี้คุณรู้วิธีดูสิทธิ์ในไฟล์ linux แล้ว

วิธีเปลี่ยนการอนุญาตไฟล์ใน Linux

หากต้องการเปลี่ยนการอนุญาตไฟล์ใน Linux คุณสามารถใช้ยูทิลิตี chmod ช่วยให้คุณสามารถเปลี่ยนแฟล็กทั้งหมดได้ รวมถึงแฟล็กพิเศษด้วย ลองดูที่ไวยากรณ์ของมัน:

$ chmod ตัวเลือกไฟล์แฟล็กการดำเนินการหมวดหมู่

ตัวเลือกต่างๆ จะไม่สนใจเราในตอนนี้ ยกเว้นบางทีอาจมีเพียงตัวเลือกเดียวเท่านั้น ด้วยตัวเลือก -R คุณสามารถบังคับให้โปรแกรมใช้การเปลี่ยนแปลงกับไฟล์และไดเร็กทอรีทั้งหมดแบบวนซ้ำได้

  • ยู- เจ้าของไฟล์;
  • - กลุ่มไฟล์;
  • โอ- ผู้ใช้รายอื่น

การดำเนินการอาจเป็นหนึ่งในสองสิ่ง ได้แก่ เพิ่มแฟล็ก "+" หรือลบแฟล็ก "-" สำหรับสิทธิ์การเข้าถึงนั้นคล้ายคลึงกับผลลัพธ์ของยูทิลิตี้ ls: r - read, w - write, x - ดำเนินการ, s - suid/sgid ขึ้นอยู่กับหมวดหมู่ที่คุณตั้งค่าไว้ t - ตั้งค่าให้ติดหนึบ -นิดหน่อย. ตัวอย่างเช่น ผู้ใช้ทุกคนมีสิทธิ์เข้าถึงไฟล์ test5 ได้อย่างสมบูรณ์:

chmod ugo+rwx ทดสอบ 5

หรือเราจะลบสิทธิ์ทั้งหมดออกจากกลุ่มและผู้ใช้รายอื่น:

chmod go-rwx ทดสอบ 5

ให้สิทธิ์กลุ่มในการอ่านและดำเนินการ:

chmod g+rx ทดสอบ 5

สำหรับผู้ใช้รายอื่นอ่านอย่างเดียว:

สำหรับไฟล์ test6 ให้ตั้งค่า SUID:

และสำหรับ test7 - SGID:

มาดูกันว่าเกิดอะไรขึ้น:

อย่างที่คุณเห็น การเปลี่ยนแปลงการอนุญาตไฟล์ใน Linux นั้นง่ายมาก นอกจากนี้คุณยังสามารถเปลี่ยนสิทธิ์พื้นฐานได้โดยใช้ตัวจัดการไฟล์

ข้อสรุป

เพียงเท่านี้คุณก็รู้แล้วไม่เพียง แต่สิทธิ์ของไฟล์ใน Linux เท่านั้น แต่ยังรวมถึงวิธีการดูและแม้แต่วิธีเปลี่ยนแปลง นี่เป็นหัวข้อที่สำคัญมากที่ผู้เริ่มต้นต้องเข้าใจจริงๆ เพื่อที่จะใช้ระบบได้อย่างเต็มที่ยิ่งขึ้น หากคุณมีคำถามใด ๆ ถามในความคิดเห็น!

โดยสรุป ฉันอยากจะนำเสนอวิดีโอที่ดีเกี่ยวกับสิทธิ์การเข้าถึงใน Linux:

ตัวเลือก -c - เพิ่มความคิดเห็นให้กับผู้ใช้
ตัวเลือก -g sudo - เพิ่มผู้ใช้ในกลุ่ม sudo
ตัวเลือก -s จะตั้งค่าเชลล์ของผู้ใช้เป็น /bin/bash

ตัวเลือก -d ใช้เพื่อระบุโฟลเดอร์โฮมของผู้ใช้
ตัวเลือก -ม จะระบุว่าจำเป็นต้องสร้างโฟลเดอร์ทันที:

Sudo useradd -c "ความคิดเห็นสำหรับผู้ใช้" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

ตั้งรหัสผ่านสำหรับผู้ใช้ NameUser:

Sudo passwd NameUser

เพิ่มผู้ใช้โดยใช้คำสั่ง adduser

sudo useradd -c "ความคิดเห็นสำหรับผู้ใช้" -g sudo -d /home/NameUser -m -s /bin/bash NameUser

ป้อนรหัสผ่าน ตอบคำถามทุกข้อ รับผู้ใช้พร้อมรหัสผ่านและโฮมไดเร็กตอรี่

การเปลี่ยนรหัสผ่านผู้ใช้

sudo passwd NameUser

เพิ่มผู้ใช้ในกลุ่ม sudo

usermod -a -G sudo NameUser

เพิ่มผู้ใช้/กลุ่มผู้ใช้ไปที่ Sudores โดยตรง:

มาแก้ไขไฟล์กันเถอะ /etc/sudores.tmpบรรณาธิการ visudo

สุดวิสัย

ให้สิทธิ์รูทแก่ผู้ใช้ที่ชื่อ ชื่อผู้ใช้

User_name ALL=(ทั้งหมด:ทั้งหมด) ทั้งหมด

ให้สิทธิ์รูทแก่กลุ่มผู้ใช้ ชื่อกลุ่มโดยการเพิ่มบรรทัดลงในไฟล์ sudoers -

Group_name ALL=(ทั้งหมด:ทั้งหมด) ทั้งหมด

ผู้ใช้และกลุ่มของเขา

เราดูกลุ่มที่มีอยู่ในโฮสต์

แมว /etc/group

การตรวจสอบการมีอยู่ของกลุ่ม กลุ่มตัวอย่าง บนโฮสต์โดยที่ examplegroup คือกลุ่มที่คุณสนใจ

กลุ่มตัวอย่าง Grep /etc/group

เราตรวจสอบ/ค้นหาว่าผู้ใช้อยู่ในกลุ่มใด (รวมถึง uid, gid ของเขา)

ไอดี NameUser

เพิ่มผู้ใช้ NameUser ที่มีอยู่ในกลุ่มตัวอย่างกลุ่มที่มีอยู่

Usermod -g ตัวอย่างกลุ่ม NameUser

การลบผู้ใช้ Ubuntu

เราใช้คำสั่งโฟลเดอร์ของผู้ใช้จะไม่ถูกลบ

ผู้ใช้ Sudodel NameUser

ลบโฟลเดอร์หากจำเป็น

Sudo rm -r /home/ชื่อผู้ใช้/

เราตรวจสอบว่าผู้ใช้ลบไปแล้วหรือไม่ หากไม่มีเอาต์พุต ผู้ใช้ก็ถูกลบไปแล้ว

Sudo grep -R NameUser /etc/passwd --color

แสดงรายการผู้ใช้ภายในเครื่องทั้งหมด

sudo cat /etc/passwd sudo cat /etc/shadow

หากต้องการแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับผู้ใช้ ให้ติดตั้งแพ็คเกจ นิ้ว

นิ้วติดตั้ง Sudo apt-get

หากต้องการดูข้อมูลเกี่ยวกับผู้ใช้ NameUser ให้รันคำสั่ง

นิ้วมือ ชื่อผู้ใช้งาน

เพื่อส่งออกข้อมูลเกี่ยวกับผู้ใช้ทั้งหมดไปยังไฟล์ infoaboutalluser.txtมาสร้างสคริปต์กันดีกว่า นิ้ว.ช

#!/bin/bash n=`cat /etc/passwd | ตัด -d: -f1` สำหรับฉันใน $n; ทำเสียงสะท้อน "=============================================== ============================ =================" นิ้ว $i เสร็จแล้ว

มารันสคริปต์กันเถอะ นิ้ว.ชและบันทึกเนื้อหาลงในไฟล์ infoaboutalluser.txt

./finger.sh infoaboutalluser.txt

รายชื่อผู้ใช้ที่มีสิทธิ์ทั้งหมด:

egrep ":0:0:" /etc/passwd

หรือไม่ได้รับสิทธิพิเศษ

Egrep -v ":0:0:" /etc/passwd

รายชื่อผู้ใช้ทั้งหมดที่มีชื่อขึ้นต้นด้วยตัวอักษร abcd:

แมว /etc/passwd | grep "^.*"

ดังที่คำตอบของผู้อ่านแสดงให้เห็น ปัญหาการแยกสิทธิ์การดูแลระบบใน Ubuntu ยังคงไม่ชัดเจนสำหรับผู้ดูแลระบบมือใหม่ส่วนใหญ่ ดังนั้นเราจึงตัดสินใจที่จะนำความชัดเจนมาสู่ปัญหานี้ด้วยเนื้อหานี้ ดังนั้นหากคุณไม่รู้ว่า su แตกต่างจาก sudo อย่างไร คุณซ่อนรูทไว้ที่ไหน ฯลฯ ฯลฯ ถึงเวลาที่จะเริ่มศึกษาบทความของเรา

เริ่มต้นด้วยการพูดนอกเรื่องเล็กน้อย ระบบสิทธิ์ผู้ดูแลระบบ Linux ย้อนกลับไปใน Unix OS และดังนั้นจึงมีความเหมือนกันมากกับระบบที่คล้าย Unix อื่นๆ: BSD, Solaris, MacOS ในขณะเดียวกัน การแจกแจงที่แตกต่างกันก็มีลักษณะการใช้งานของตนเองในบางแง่มุม ดังนั้นเราจะยกตัวอย่างเฉพาะเกี่ยวกับตระกูล Ubuntu แต่ความรู้เกี่ยวกับกฎทั่วไปจะช่วยให้คุณเข้าใจสภาพแวดล้อมของระบบปฏิบัติการที่คล้าย Unix อื่น ๆ ได้อย่างง่ายดาย

ผู้ใช้มีสิทธิ์การดูแลระบบแบบเต็มใน Linux รากซึ่งสิทธิ์ไม่สามารถจำกัดได้ ดังนั้นการทำงานในแต่ละวันในนามของผู้ใช้รายนี้จึงไม่เป็นที่พึงปรารถนาอย่างยิ่ง: การกระทำที่ไม่ระมัดระวังของผู้ใช้อาจนำไปสู่ความเสียหายต่อระบบได้ และการประนีประนอมบัญชีนี้จะทำให้ผู้โจมตีสามารถเข้าถึงระบบได้ไม่จำกัด

ดังนั้นจึงมีการใช้รูปแบบที่แตกต่างกันใน Linux: ผู้ใช้ทั้งหมดรวมถึงผู้ดูแลระบบ ทำงานภายใต้บัญชีที่จำกัด และเพื่อดำเนินการด้านการดูแลระบบ พวกเขาใช้กลไกการยกระดับสิทธิ์อย่างใดอย่างหนึ่ง ในการทำเช่นนี้คุณสามารถเพิ่มสิทธิ์โดยใช้ยูทิลิตี้นี้ได้ ซูโดะหรือเข้าสู่ระบบในฐานะ superuser (root) โดยไม่ต้องยุติเซสชันปัจจุบันโดยใช้คำสั่ง ซู. หลายๆ คนเข้าใจผิดว่าทั้งสองกลไกนี้สับสน ดังนั้นเรามาดูรายละเอียดกันดีกว่า

ทีม ซูอนุญาตให้คุณเข้าสู่ระบบในฐานะผู้ใช้รายอื่น (ไม่จำเป็นต้องรูท) โดยไม่ต้องยุติเซสชันปัจจุบัน ดังนั้นคำสั่ง:

ซู เปตรอฟ

จะอนุญาตให้คุณเข้าสู่ระบบในฐานะผู้ใช้ Petrov สภาพแวดล้อมผู้ใช้ (โฮมโฟลเดอร์) ก็จะถูกเปลี่ยนให้เป็นของผู้ใช้รายนี้ด้วย

ทีม ซูอนุญาตให้คุณเข้าสู่ระบบด้วยบัญชีของคุณโดยไม่ต้องระบุชื่อผู้ใช้ ราก"ก. อย่างไรก็ตาม วิธีนี้มีข้อเสียเปรียบที่สำคัญประการหนึ่ง - ในการเข้าสู่ระบบในนามของผู้ใช้รายอื่น คุณต้องรู้รหัสผ่านของเขา หากคุณมีผู้ดูแลระบบหลายคน แต่ละคนจะรู้รหัสผ่าน superuser และคุณจะไม่สามารถ จำกัดสิทธิของพวกเขา

นอกจากนี้ยังไม่ปลอดภัย การรู้รหัสผ่าน superuser และความสามารถในการเข้าสู่ระบบภายใต้ชื่อของเขาในกรณีที่มีการประนีประนอมอาจทำให้สูญเสียการควบคุมระบบโดยสิ้นเชิง

จะเกิดอะไรขึ้นถ้าเราพยายามเพิ่มสิทธิ์ใน Ubuntu ด้วยวิธีนี้ เราจะไม่สามารถทำอะไรได้เพราะเราไม่ทราบรหัสผ่านของผู้ใช้ รากในขณะเดียวกันก็ไม่มีใครหยุดเราไม่ให้เข้าสู่ระบบในฐานะผู้ใช้รายอื่น

"รอ!" - ผู้ใช้รายอื่นจะพูดว่า "ไม่ได้มอบสิทธิ์รูทให้กับผู้ใช้ที่สร้างขึ้นครั้งแรกซึ่งเราระบุระหว่างการติดตั้ง" แท้จริงแล้วงานการดูแลระบบสามารถทำได้ในนามของผู้ใช้ที่สร้างขึ้นระหว่างการติดตั้งเท่านั้น หากเราพยายามทำสิ่งนี้บน ในนามของผู้ใช้รายอื่น เราจะประสบกับความล้มเหลว

เรามาใกล้ถึงกลไกที่สองในการเพิ่มสิทธิ - ยูทิลิตี้ ซูโดะ. อย่างไรก็ตามก่อนที่จะศึกษาต่อควรชี้แจงให้ชัดเจนก่อน: สิทธิ์ superuser (root) ใน Ubuntu เป็นของบัญชีรูทซึ่งถูกปิดใช้งานตามค่าเริ่มต้น ดังนั้นให้เพิ่มสิทธิ์โดยใช้คำสั่ง ซูดูเหมือนจะเป็นไปไม่ได้

กลไกหลักในการยกระดับสิทธิ์ใน Ubuntu คือยูทิลิตี้ ซูโดะ. ยูทิลิตี้นี้ช่วยให้คุณยกระดับสิทธิ์ไปยังระดับ superuser สำหรับคำสั่งที่กำลังดำเนินการ แต่คุณไม่จำเป็นต้องทราบรหัสผ่าน superuser ผู้ใช้จะต้องป้อนรหัสผ่านของตนเอง หลังจากนั้นยูทิลิตี้จะตรวจสอบว่าผู้ใช้นี้มีสิทธิ์ดำเนินการคำสั่งนี้บนโฮสต์นี้ด้วยสิทธิ์ superuser หรือไม่ และหากการตรวจสอบสำเร็จก็จะดำเนินการดังกล่าว

มันเป็นสิ่งสำคัญ!ความแตกต่างหลัก ซูจาก ซูโดะให้บริการอะไร ซูอนุญาตให้คุณเปลี่ยนผู้ใช้ปัจจุบันเป็นรูทซึ่งต้องมีบัญชี superuser ที่ใช้งานอยู่ในระบบและรู้รหัสผ่าน ซูโดะช่วยให้คุณยกระดับสิทธิ์สำหรับคำสั่งที่กำลังดำเนินการโดยไม่ต้องระบุรหัสผ่าน superuser ผู้ใช้จะต้องป้อนรหัสผ่านของตนเอง การเข้าสู่ระบบในฐานะรูทด้วยข้อมูลรับรองเหล่านี้จะไม่ทำงาน

สถานการณ์ที่สำคัญอีกประการหนึ่งคือเมื่อใช้ไปป์ไลน์หรือการเปลี่ยนเส้นทางด้วยสิทธิ์ผู้ใช้ขั้นสูง เฉพาะส่วนแรกของคำสั่งเท่านั้นที่จะถูกดำเนินการ เช่น ในการออกแบบ:

คำสั่ง Sudo1 | ทีม2

ด้วยสิทธิ์รูทจะถูกดำเนินการเท่านั้น ทีม1. และทีมงาน

Sudo cat Sources.list > /etc/apt/sources.list

จะให้ข้อผิดพลาดเกี่ยวกับสิทธิ์การเข้าถึงเนื่องจากมีรายการอยู่ /etc/apt/sources.listจะเกิดขึ้นกับสิทธิผู้ใช้ตามปกติ

หากต้องการรวมคำสั่งที่ซับซ้อน คุณสามารถสลับไปที่โหมด superuser ด้วยคำสั่งได้

ซึ่งคล้ายกับการยกระดับสิทธิด้วยคำสั่ง ซูอย่างไรก็ตาม การดำเนินการนี้จะไม่เปลี่ยนสภาพแวดล้อมของผู้ใช้ และไดเร็กทอรีของผู้ใช้ปัจจุบันจะถูกใช้เป็นโฮมไดเร็กตอรี่ ซึ่งสะดวกและปลอดภัย ผู้ดูแลระบบแต่ละคนจะสามารถเข้าถึงไดเร็กทอรีโฮมของตนเท่านั้น

ตอนนี้เป็นเวลาที่จะพิจารณาว่าใครมีสิทธิ์ใช้โอกาสนี้ ซูโดะและมีขอบเขตเท่าใด ไฟล์นี้รับผิดชอบการตั้งค่าของยูทิลิตี้นี้ /etc/sudoersแม้ว่านี่จะเป็นไฟล์การกำหนดค่าปกติ แต่ขอแนะนำอย่างยิ่งให้ใช้คำสั่งในการแก้ไข:

สุดวิสัย

คำสั่งนี้จะล็อคไฟล์และตรวจสอบไวยากรณ์ มิฉะนั้นคุณอาจเสี่ยงต่อการสูญเสียสิทธิ์การเข้าถึงพีซีระดับผู้ดูแลระบบเนื่องจากการพิมพ์ผิด

ไวยากรณ์ของไฟล์นี้ง่ายมาก ตัวอย่างเช่น ที่ส่วนท้ายสุดของไฟล์จะมีรายการ:

%ผู้ดูแลระบบทั้งหมด=(ทั้งหมด) ทั้งหมด

ซึ่งหมายความว่าผู้ใช้ในกลุ่ม ผู้ดูแลระบบสามารถดำเนินการคำสั่งใด ๆ บนโฮสต์ใด ๆ ในนามของผู้ใช้คนใดก็ได้ เนื่องจากเราสามารถตรวจสอบได้อย่างง่ายดายโดยใช้คำสั่ง กลุ่มในกรณีของเราคือผู้ใช้ อันเดรย์อยู่ในกลุ่ม ผู้ดูแลระบบและผู้ใช้ เปตรอฟเลขที่

แต่ข้อดีทั้งหมดของยูทิลิตี้นี้อยู่ที่ความสามารถในการกำหนดค่าพารามิเตอร์เพื่อรับสิทธิ์ในแต่ละกรณีอย่างยืดหยุ่น ตัวอย่างเช่น:

Petrov ubuntu-lts=(อันเดรย์) ทั้งหมด

บรรทัดนี้อนุญาตให้ผู้ใช้ เปตรอฟดำเนินการคำสั่งใด ๆ บนโฮสต์ ubuntu-ltsในนามของผู้ใช้ อันเดรย์. เมื่อระบุคำสั่งคุณควรระบุเส้นทางแบบเต็มซึ่งคุณสามารถค้นหาได้โดยใช้คำสั่ง ที่

เช่น เราต้องการอนุญาตให้ผู้ใช้ เปตรอฟและ ซิโดรอฟปิดเครื่องและรีสตาร์ทคอมพิวเตอร์รวมทั้งลบงานออก อย่างไรก็ตาม คำสั่งเหล่านี้ไม่ควรกำหนดให้ต้องป้อนรหัสผ่าน

คุณสมบัติที่ดีอีกประการหนึ่งของยูทิลิตี้ sudo คือการสร้างนามแฝง ดังนั้นในกรณีของเราเราจะเพิ่มเข้าไป /etc/sudoersบรรทัดต่อไปนี้:

User_Alias ​​USERGROUP1 = เปตรอฟ, ซิโดรอฟ
Cmnd_Alias ​​​​CMDGROUP1 = /bin/kill, /sbin/reboot, /sbin/shutdown

ด้วยเหตุนี้เราจึงสร้างนามแฝงขึ้นมาสองนาม กลุ่มผู้ใช้1โดยที่เรารวมผู้ใช้ที่เราต้องการและ CMDGROUP1ด้วยชุดคำสั่งที่จำเป็น ในเวลาต่อมาเราสามารถแก้ไขเฉพาะนามแฝงได้โดยไม่ส่งผลกระทบต่อกฎทั้งหมดที่สามารถใช้ได้ จากนั้นมาเพิ่มกฎ:

USERGROUP1 ทั้งหมด = (ทั้งหมด) NOPASSWD:СMDGROUP1

ซึ่งจะอนุญาตให้ผู้ใช้ที่อยู่ในนามแฝงที่ระบุสามารถรันคำสั่งจากนามแฝงที่กำหนดบนโฮสต์ใด ๆ ในนามของผู้ใช้โดยไม่ต้องป้อนรหัสผ่าน

นอกเหนือจากสองรายการข้างต้นแล้ว ยังมีนามแฝงสำหรับชื่อโฮสต์และผู้ใช้ที่ได้รับอนุญาตให้ดำเนินการคำสั่งในนาม เช่น:

Host_Alias ​​​​WWW = เว็บเซิร์ฟเวอร์1, เว็บเซิร์ฟเวอร์2
Runas_Alias ​​​​WWW = www-data, www-developer

USERGROUP1 WWW = (WWW) ทั้งหมด

ชุดบันทึกที่กำหนดจะอนุญาตให้ผู้ใช้เข้าได้ กลุ่มผู้ใช้1ดำเนินการคำสั่งใด ๆ ในนามของผู้ใช้ www-dataและ www-นักพัฒนาบนเว็บเซิร์ฟเวอร์ของบริษัท

สุดท้ายนี้ เรามาดูกันว่าจะทำอย่างไรหากยังจำเป็นต้องใช้บัญชีรูท เปิดใช้งานได้ง่าย ๆ เพียงตั้งรหัสผ่าน:

รูต Sudo passwd

คุณสามารถล็อคบัญชี superuser ได้อีกครั้งด้วยคำสั่ง:

sudo passwd -l รูต

โปรดจำไว้ว่างานดูแลระบบทั้งหมดใน Ubuntu สามารถทำได้โดยใช้ยูทิลิตี sudo ดังนั้นอย่าเปิดใช้งานบัญชีรูท เว้นแต่จะจำเป็นจริงๆ!

อย่างที่คุณเห็น Ubuntu มีความสามารถในการจัดการสิทธิ์ผู้ดูแลระบบที่หลากหลาย ซึ่งช่วยให้คุณสามารถกระจายสิทธิ์ให้กับผู้ดูแลระบบหลายคนได้อย่างยืดหยุ่น รวมถึงให้ความสามารถในการเพิ่มสิทธิ์ให้กับผู้ใช้บางคน และทำสิ่งนี้ได้อย่างมีประสิทธิภาพและปลอดภัย