มีสองสามวิธีในการบรรลุเป้าหมายนี้ หนึ่งจะทำงานกับบัญชีที่ไม่ได้รับสิทธิพิเศษซึ่งจะต้องใช้คำสั่งด้วย sudo และป้อนรหัสผ่าน จากนั้นคุณสามารถผนวก follwing ไปที่ / etc / sudoers (โดยเรียกใช้ visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
นอกจากนี้หากต้องการปิดใช้งานการแคชหนังสือรับรอง sudo ให้เพิ่มรายการต่อไปนี้ด้วย:
Defaults timestamp_timeout=0
สิ่งนี้จะป้องกันการแคชข้อมูลรับรองในกรณีที่คุณเรียกใช้คำสั่งด้วย sudo ก่อน
ตัวอย่าง:
[root@ops ~]# su - jdoe
[jdoe@ops ~]$ sudo shutdown -c
[sudo] password for jdoe:
[jdoe@ops ~]$ sudo shutdown -r +10
Shutdown scheduled for Mon 2018-09-03 18:51:13 IDT, use 'shutdown -c' to cancel.
[jdoe@ops ~]$ sudo shutdown -H
[sudo] password for jdoe:
^[[A[jdoe@ops ~]$ sudo shutdown -c
[sudo] password for jdoe:
สังเกตว่าในตัวอย่างข้างต้นฉันไม่จำเป็นต้องป้อนรหัสผ่านของฉันเมื่อทำงานsudo shutdown -r +10
แต่สำหรับส่วนที่เหลือฉันเป็น หากคุณต้องการลบความต้องการในการพิมพ์ sudo หน้าคำสั่ง ( sudo shutdown -r +10
) ให้เพิ่มสิ่งต่อไปนี้ใน. bash_profile หรือ. bashrc ของคุณ:
alias shutdown="sudo shutdown"
ตัวอย่าง:
[jdoe@ops ~]$ source ~/.bash_profile
[jdoe@ops ~]$ shutdown -r +10
Shutdown scheduled for Mon 2018-09-03 19:03:14 IDT, use 'shutdown -c' to cancel.
[jdoe@ops ~]$ shutdown -c
[sudo] password for jdoe:
โปรดทราบว่าเป็นแนวปฏิบัติที่ดีที่สุดในการทำงานกับบัญชีที่ไม่มีสิทธิพิเศษและเพิ่มระดับด้วย sudo เมื่อจำเป็น