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