对某个应用程序使用无需密码的 sudo 命令

对某个应用程序使用无需密码的 sudo 命令

我正在使用 python 脚本来运行 docker,但是 docker 需要 sudo 命令才能运行,而将 sudo 密码存储在文件中或赋予整个 python 脚本 sudo 权限是不好的做法,我见过一种方法,可以让系统运行某些命令而无需输入密码,我尝试过但我无法理解,主要是我输入错了(我想)我甚至损坏了我的 sudoers 文件一次并修复了它。

那么有人可以为我解释一下这一行以及为什么它不起作用吗?

username ALL = (root) NOPASSWD: /usr/bin/docker

答案1

为了防止损坏/etc/sudoers文件,请始终使用该visudo命令。如果您不喜欢默认编辑器,请将EDITOR环境变量设置为所需的编辑器。

把你的用户规范行作为文件中的最后一行sudoers

更新

请参见:在 /etc/sudoers 中添加 NOPASSWD 不起作用

答案2

运行命令:

sudo visudo

现在进入 %sudo 的入口

 %sudo   ALL=(ALL:ALL) ALL

并将其替换为:

 %sudo   ALL=(ALL) NOPASSWD:/usr/bin/docker

这将影响所有 sudo 用户。如果您只想为某个特定用户执行该选项“必须具有 sudo 权限”:

user ALL=(ALL) NOPASSWD:/usr/bin/docker

现在保存并退出。

为了确保一切正确,请运行以下命令:

sudo docker

它应该在不提示用户密码的情况下运行。

暗示:确保您的用户具有 sudo 权限,并确保命令的路径正确。您可以使用以下方法检查which docker

相关内容