我正在尝试让特定用户能够使用 sudo 运行两个命令,而无需输入密码。这就是我所做的:
# temporarily grant privs to nitsadmin
Cmnd_Alias REBOOT = /usr/sbin/reboot
Cmnd_Alias STOP_START_CRUSHFTP = /var/opt/Crushftp/crushftp_init.sh
nitsadmin ALL=(ALL) NOPASSWD: STOP_START_CRUSHFTP, REBOOT
reboot 命令完全按照预期工作,但 crushftp_init.sh 命令坚持要求输入密码。
帮助?
在回复第一条评论时,我所看到的是:
nitsadmin@dropbox:~$ sudo /var/opt/CrushFTP10/crushftp_init.sh stop
[sudo] password for nitsadmin:
因此我很确定它sudo
正在提示输入密码。
答案1
您可能需要更改:
Cmnd_Alias STOP_START_CRUSHFTP = /var/opt/Crushftp/crushftp_init.sh
到:
Cmnd_Alias STOP_START_CRUSHFTP = /var/opt/Crushftp/crushftp_init.sh*
/var/opt/Crushftp/crushftp_init.sh
sudoers 文件中的别名需要与命令的运行方式完全匹配。不是匹配/var/opt/Crushftp/crushftp_init.sh install
编辑:这将允许/var/opt/Crushftp/crushftp_init.sh
使用 sudo 运行任何变体而无需密码。Cmnd_Alias STOP_START_CRUSHFTP = /var/opt/Crushftp/crushftp_init.sh stop
如果您希望限制为仅停止等,则可以将别名更改为。