Есть несколько способов добиться этого. Можно было бы работать с обычной непривилегированной учетной записью, для которой потребуется выполнить команду с sudo и ввести пароль. Затем вы можете добавить следующее в / 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, когда это необходимо.