การอนุญาตให้ผู้ใช้ใช้ sudo โดยไม่ต้องใช้รหัสผ่าน


16

ในสภาพแวดล้อม sandbox VM ฉันมีการติดตั้ง Ubuntu Linux ซึ่งเป็นไฟร์วอลล์และไม่สามารถเข้าถึงได้จากนอกระบบท้องถิ่น ดังนั้นบน VM นั้นฉันต้องการให้ผู้ใช้ที่เป็นผู้ดูแลระบบ (ซึ่งฉันตั้งค่า) ความสามารถในการรันทุกอย่างด้วย sudo และไม่จำเป็นต้องใช้รหัสผ่าน

ในขณะที่ฉันรู้ว่านี่ไม่ปลอดภัย VM นี้ไม่ได้อยู่ตลอดเวลาและต้องการรหัสผ่านส่วนตัวของฉันเพื่อเรียกใช้ ดังนั้นแม้ว่าสิ่งนี้จะไม่ "ปลอดภัย" แต่มีวิธีรับฟังก์ชั่นที่ต้องการหรือไม่?

คำตอบ:


23

จากมนุษย์ sudoers :

   NOPASSWD and PASSWD

   By default, sudo requires that a user authenticate him or herself
   before running a command.  This behavior can be modified via the
   NOPASSWD tag.  Like a Runas_Spec, the NOPASSWD tag sets a default for
   the commands that follow it in the Cmnd_Spec_List.  Conversely, the
   PASSWD tag can be used to reverse things.  For example:

    ray  rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

   would allow the user ray to run /bin/kill, /bin/ls, and /usr/bin/lprm
   as root on the machine rushmore without authenticating himself.

อีกแท็กหนึ่งคือALLเพื่อให้ผู้ใช้ ray เรียกใช้คำสั่งใด ๆ บนโฮสต์ใด ๆ โดยไม่ต้องใช้รหัสผ่านคุณสามารถใช้:

ray ALL= NOPASSWD: ALL

2
/etc/sudoersแฟ้มการกำหนดค่าคำตอบนี้จะอธิบายคือ คุณไม่ได้แก้ไขสิ่งนี้เช่นไฟล์กำหนดค่าปกติ แต่คุณควรใช้visudoคำสั่ง (เหมือนรูท)
paulhauner

1

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

ทางออกหนึ่งที่เป็นไปได้คือสายการบินเดียวที่ฉันจำได้ง่ายกว่าตัวเลือก NOPASSWD รับสิทธิ์ผู้ดูแลระบบและเรียกใช้

$ visudo

และเพิ่มบรรทัดต่อไปนี้

ค่าเริ่มต้น: ชื่อผู้ใช้ ! รับรองความถูกต้อง

การดำเนินการนี้จะปิดใช้งานการถามรหัสผ่านทั้งหมดสำหรับผู้ใช้เฉพาะราย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.