การตั้งค่า sudo แบบไม่ใช้รหัสผ่านบน Linux ดิสทริบิวชัน


18

ฉันเพิ่งตั้งค่าทั้งระบบ Fedora 28 และ Ubuntu 18.04 และต้องการกำหนดค่าบัญชีผู้ใช้หลักของฉันทั้งสองเพื่อให้ฉันสามารถเรียกใช้sudoคำสั่งโดยไม่ต้องใส่รหัสผ่าน

ฉันจะทำสิ่งนี้ในระบบที่เกี่ยวข้องได้อย่างไร

คำตอบ:


28

มันค่อนข้างเล็กน้อยถ้าคุณใช้ประโยชน์จากกลุ่ม Unix พิเศษที่เรียกว่าwheelระบบ Fedora คุณเพียงแค่ต้องทำสิ่งต่อไปนี้:

  1. เพิ่มผู้ใช้หลักของคุณไปยังwheelกลุ่ม

    $ sudo gpasswd -a <primary account> wheel
    
  2. เปิดใช้งาน NOPASSWD สำหรับ%wheelกลุ่มใน/etc/sudoers

    $ sudo visudo
    

    จากนั้นแสดงความคิดเห็นสายนี้:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    

    และยกเลิกข้อคิดเห็นบรรทัดนี้:

    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL
    

    บันทึกไฟล์นี้กับShift+ +ZZ

  3. ออกจากระบบและเข้าสู่ระบบอีกครั้ง

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


จะเกิดอะไรขึ้นถ้าwheelคุณใช้กลุ่มอื่นแทน
Giacomo Alzetta

@GiacomoAlzetta เปลี่ยน%wheelเป็นกลุ่มนั้น
Barmar

19

ธรรมเนียมในการกระจาย Debian เช่น Debian / Ubuntu / มิ้นท์ / กาลี / Antix กลุ่มเริ่มต้นสำหรับ sudo sudoคือดี

ดังนั้นในการเพิ่มsudoผู้ใช้ที่เปิดใช้งานรหัสผ่านให้กับระบบที่ใช้ Debian ขั้นตอนคือ:

  1. ติดตั้ง sudo

    ใน Debian ขึ้นอยู่กับตัวเลือกการติดตั้งคุณมักจะสิ้นสุดโดยไม่ต้องsudoติดตั้งตามค่าเริ่มต้น

    หากsudoไม่ได้ติดตั้งแพ็คเกจ(เช่นคุณไม่มี/etc/sudoers) ให้รันเป็น root:

    # apt install sudo
    
  2. เพิ่มผู้ใช้ไปยังกลุ่ม sudo

    เพิ่มผู้ใช้ไปยังกลุ่ม sudo หากยังไม่ได้อยู่ในกลุ่ม sudo (Ubuntu และอนุพันธ์เพิ่มผู้ใช้ที่สร้างขึ้นในการติดตั้งโดยอัตโนมัติไปยังกลุ่ม sudo)

    เมื่อตั้งค่าผู้ใช้ sudo คนแรกคุณต้องไปที่root:

    # gpasswd -a <primary account> sudo
    

    เมื่อคุณมีsudoผู้ใช้อยู่แล้วขอแนะนำให้ใช้แนวทางปฏิบัติด้านความปลอดภัยที่ดีเพื่อตั้งค่าผู้ใช้รายอื่นในกลุ่ม sudo ผ่านผู้ใช้รายนั้น:

    $ sudo gpasswd -a <primary account> sudo
    
  3. แก้ไข/etc/sudoersเพื่อเพิ่มคำสั่ง NOPASSWD

    จากนั้นคุณจะแก้ไขบรรทัดเริ่มต้น/etc/sudoersสำหรับsudoกลุ่มด้วย:

    $ sudo visudo
    

    และเปลี่ยนจาก:

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    

    ถึง:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. ออกจากระบบและเข้าสู่ระบบอีกครั้ง

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

หมายเหตุ:ใน Debian กลุ่มwheelมักจะใช้เพื่อ จำกัด ใน PAM การใช้suงานกลุ่มแทนที่จะใช้มันสำหรับsudoคำสั่งเช่นเดียวกับในการกระจายแบบ RedHat / SuSE

ตามเนื้อผ้าในการแจกแจงแบบ Debian สำหรับsudoคำสั่งที่คุณใช้sudoกลุ่ม


7

การแจกแจงส่วนใหญ่มีบรรทัดนี้ใน/etc/sudoers/:

#includedir /etc/sudoers.d

ดังนั้นวิธีที่ง่ายในการเพิ่มผู้ใช้หนึ่งคนคือการสร้างไฟล์ที่เหมาะสมใน/etc/sudoers.d/ไดเรกทอรี ปกติฉันจะตั้งชื่อให้ผู้ใช้เพิ่ม:

add_sudoer() {
    if ! test -n "$1"
    then echo "Usage: $0 <user>" >&2; return
    fi

    printf >"/etc/sudoers.d/$1" '%s    ALL= NOPASSWD: ALL\n' "$1"
}

คุณอาจต้องการเพิ่มDefaults:%s !lecture, !authenticate\nและ / หรือตัวเลือกอื่น ๆ ลงในไฟล์

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