Istnieje kilka sposobów na osiągnięcie tego. Ktoś mógłby pracować ze zwykłym nieuprzywilejowanym kontem, które będzie wymagało uruchomienia komendy sudo i wprowadzenia hasła. Następnie możesz dołączyć obserwację do / etc / sudoers (uruchamiając visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Ponadto, aby wyłączyć buforowanie poświadczeń sudo, dodaj również następujące elementy:
Defaults timestamp_timeout=0
Zapobiegnie to buforowaniu poświadczeń, ponieważ wcześniej wywołałeś polecenie w sudo.
Przykład:
[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:
Zauważ, że w powyższym przykładzie nie było wymagane wpisywanie hasła podczas pracy sudo shutdown -r +10
, ale przez resztę tak było. Jeśli chcesz usunąć potrzebę wpisywania sudo przed poleceniem ( sudo shutdown -r +10
), dodaj do pliku .bash_profile lub .bashrc:
alias shutdown="sudo shutdown"
Przykład:
[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:
Pamiętaj, że najlepszą praktyką jest praca z kontem nieuprzywilejowanym i eskalacja z sudo, gdy jest to wymagane.