Es gibt einige Möglichkeiten, dies zu erreichen. Man würde mit einem normalen, nicht privilegierten Konto arbeiten, für das der Befehl mit sudo ausgeführt und ein Kennwort eingegeben werden muss. Anschließend können Sie Folgendes an / etc / sudoers anhängen (indem Sie visudo ausführen):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Fügen Sie außerdem Folgendes hinzu, um das Zwischenspeichern von sudo-Anmeldeinformationen zu deaktivieren:
Defaults timestamp_timeout=0
Dadurch wird verhindert, dass Anmeldeinformationen zwischengespeichert werden, wenn Sie zuvor einen Befehl mit sudo aufgerufen haben.
Beispiel:
[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:
Beachten Sie, dass ich im obigen Beispiel beim Ausführen nicht mein Kennwort eingeben sudo shutdown -r +10
musste, für den Rest jedoch. Wenn Sie die Notwendigkeit beseitigen möchten, sudo vor dem Befehl ( sudo shutdown -r +10
) einzugeben, fügen Sie Folgendes zu Ihrem .bash_profile oder .bashrc hinzu:
alias shutdown="sudo shutdown"
Beispiel:
[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:
Beachten Sie, dass es empfehlenswert ist, mit einem nicht privilegierten Konto zu arbeiten und bei Bedarf mit sudo zu eskalieren.