ในการชี้แจงให้ชัดเจน: ไม่มี "คำสั่ง sudo" มีเพียงคำสั่งที่ต้องการสิทธิ์รูทในการทำงานอย่างถูกต้องและsudo
เป็นคำสั่งเพื่อให้ได้รับหนึ่งคำสั่ง: sudo
เพียงแค่เรียกใช้คำสั่งที่กำหนดเป็นรูท (อ่าน "sudo" ตามความจำเป็น ประโยค "superuser ทำอะไรสักอย่าง!") กฎที่ผู้ใช้สามารถทำได้ถูกเขียนลง/etc/sudoers
ไป ในการติดตั้ง Raspbian เริ่มต้นผู้ใช้เริ่มต้น "pi" ได้รับอนุญาตจากบรรทัดนี้:
pi ALL=(ALL) NOPASSWD: ALL
หมายความว่า: "ผู้ใช้ 'pi' บนโฮสต์ทั้งหมดได้รับอนุญาตให้สลับไปยังผู้ใช้ทั้งหมดและไม่จำเป็นต้องพิมพ์ PASSWD ของเขาเมื่อใช้คำสั่ง ALL (read: any)" (ฉันใช้ไวยากรณ์บ้าที่นี่เพื่อรักษาลำดับของบรรทัด .. หมายเหตุเกี่ยวกับสาเหตุที่มีวิธีแยกแยะโฮสต์: ด้วยวิธีนี้ไฟล์ sudoers เดียวกันสามารถแจกจ่ายไปยังเครื่องหลาย ๆ เครื่องบนเครือข่ายดังนั้นผู้ดูแลระบบเครือข่ายจึงทำงานน้อยลง) .
อาจเป็นได้ว่าการใช้คำสั่งโดยใช้ sudo โดยไม่ต้องใช้รหัสผ่านของผู้ดูแลระบบเป็นประเด็นที่คุณคิดว่ามันอันตรายที่จะใช้ sudo ผ่าน SSH (ฉันไม่เคยได้ยินปัญหาทั่วไปเกี่ยวกับการทำเช่นนั้น ... อธิบายว่าอันตรายที่คุณหมายถึงอะไร?)
แน่นอนว่าคุณสามารถมีผู้ใช้หลายคนที่มีสิทธิ์ที่แตกต่างกัน แต่ฉันกลัวว่าการใช้ sudo ยังคงเป็นวิธีที่ดีที่สุดในการจัดการสิทธิ์เหล่านี้
ดังนั้นฉันหวังว่าสูตรอาหารเล็ก ๆ ที่นี่คือสิ่งที่คุณต้องการ:
$ sudo adduser admin
สิ่งนี้จะสร้างผู้ใช้ "ผู้ดูแลระบบ" ถามรหัสผ่านสร้างไดเรกทอรีบ้านของเขา ฯลฯ
$ sudo adduser admin sudo
$ sudo adduser admin adm
สิ่งนี้จะนำผู้ใช้ "admin" ไปไว้ในกลุ่มผู้ใช้ "sudo" และ "adm" และเนื่องจากสิทธิ์ได้รับการจัดการใน Linux โดยการเพิ่มผู้ใช้ในกลุ่มผู้ใช้สิ่งนี้จะให้สิทธิ์ผู้ใช้ "admin" ทั้งหมดและสิทธิ์ที่เขาต้องการ มีบรรทัด/etc/sudoers
ที่ให้ผู้ใช้ใด ๆ ที่อยู่ในกลุ่มผู้ใช้ "sudo" เพื่อรันคำสั่งใด ๆ ในฐานะรูท; และสิทธิพิเศษนี้คือสิ่งที่เราต้องการสำหรับผู้ใช้ผู้ดูแลระบบ (การเพิ่มเขาไปที่ "adm" ทำให้เขาสามารถอ่านไฟล์บันทึกบางไฟล์/var/log
โดยไม่ต้องใช้sudo
และอื่น ๆ ) คุณยังต้องใช้sudo
เมื่อคุณลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ - แต่ตอนนี้ sudo ถามรหัสผ่านของผู้ดูแลระบบซ้ำทุกครั้งที่คุณไม่ได้ใช้งาน sudo เป็นเวลาประมาณห้านาที
ตอนนี้ออกจากระบบและเข้าสู่ระบบในฐานะผู้ใช้ "admin" ตรวจสอบว่า
$ sudo apt-get update
$ sudo apt-get upgrade
โรงงาน ถ้าเป็นเช่นนั้นคุณอาจยกเลิกสิทธิ์บางอย่างของผู้ใช้ "pi" เพราะตอนนี้คุณมั่นใจแล้วว่าผู้ดูแลระบบของคุณมีสิทธิ์ที่ถูกต้อง:
$ sudo deluser pi sudo
$ sudo deluser pi adm
สิ่งนี้จะทำให้ผู้ใช้ "pi" ออกจากกลุ่มผู้ใช้ "sudo"
$ sudo visudo
/etc/sudoers
นี้จะเริ่มแก้ไขที่ช่วยให้คุณในการแก้ไข ใส่แท็กแฮช ( #
) หน้าบรรทัดที่ขึ้นต้นด้วย "pi" แสดงความคิดเห็น (หรือลบออก) จากนั้นบันทึกและออกจากตัวแก้ไข visudo จะโหลดกฎสิทธิ์อีกครั้งทันที ตอนนี้ผู้ใช้ "pi" ไม่ได้รับอนุญาตให้ใช้ sudo อีกต่อไป
หลังจากนั้นคุณอาจเข้าสู่ระบบอีกครั้งในฐานะผู้ใช้ "pi" หากคุณต้องการสลับไปยังผู้ดูแลระบบสำหรับคำสั่งบางคำให้ใช้su
("สลับผู้ใช้"):
$ su - admin
หากคุณต้องการเพิ่มผู้ใช้มากขึ้น: ใช้sudo adduser <name>
เหมือนด้านบนจากนั้นตรวจสอบรายชื่อกลุ่มผู้ใช้ที่ "pi" ได้รับ:
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
ใช้sudo adduser <username> <groupname>
เพื่อเพิ่มผู้ใช้ใหม่ของคุณไปยังกลุ่มผู้ใช้เหล่านี้หลายกลุ่มทำให้เขาสามารถใช้เสียงวิดีโอเร่งความเร็วใช้อุปกรณ์ที่เสียบได้ ฯลฯ หากไม่แน่ใจให้เพิ่มเขาในกลุ่มผู้ใช้เหล่านี้ทั้งหมด (แต่ไม่ใช่ "sudo"!)