我想要用户名 steamy(非 sudo 用户)执行三个命令(即 systemctl start|stop|restart factorio)而不输入密码。
我正在使用名为 factorio 的 sudoers.d 文件:
$ sudo ls -l /etc/sudoers.d/
total 8
-r--r----- 1 root root 174 Sep 4 16:49 factorio
-r--r----- 1 root root 958 Jan 17 2018 README
我创建/编辑的factorio文件的内容$ sudo visudo -f /etc/sudoers.d/factorio
:
$ sudo cat /etc/sudoers.d/factorio
steamy ALL=(ALL) NOPASSWD: /usr/bin/systemctl start factorio, /usr/bin/systemctl stop factorio, /usr/bin/systemctl restart factorio
当用户名 steamy 属于 sudo 组时,这三个命令(即 systemctl start|stop|restart factorio)可以正常工作,而不需要密码。
当用户名 steamy 不在 sudo 组内时,这三个命令需要密码,正确输入密码后会失败。
使用 Ubuntu 20.04.6 LTS。
当 steamy 成为 sudo 组的一部分时
$ sudo -l
Matching Defaults entries for steamy on steamnuc00:
env_reset, timestamp_timeout=60, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User steamy may run the following commands on steamnuc00:
(ALL : ALL) ALL
当 steamy 不属于 sudo 组时
$ sudo -l
[sudo] password for steamy:
Sorry, user steamy may not run sudo on steamnuc00.