我知道这个问题之前有人问过,但我试过其他几十篇帖子的答案,但都不起作用。我也在其他服务器上成功使用过这个,所以我不确定这次我做错了什么。不幸的是,那些服务器已经不存在了,所以我不能用它们作为参考。
我有一个新的 Kubuntu 22.04 服务器,我用它来托管我孩子的 Minecraft 服务器。我试图授予帐户无需密码即可重新启动 systemd 服务的权限。
脚步:
- 我使用以下命令创建了一个新的 sudo 文件:
sudo visudo /etc/sudoers.d/10-extras
- 这是该文件夹中唯一的文件(除 README 之外)。
- 我只输入了一行:
family ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart minecraft-bedrock.service
systemctl restart minecraft-bedrock
仍提示输入密码。which systemctl
节目/usr/bin/systemctl
- 我尝试使用
family ALL=(ALL) NOPASSWD: ALL
,结果相同。 - 我尝试使用
family ALL=(ALL:ALL) NOPASSWD: ALL
,结果相同。 - 我尝试用我的帐户执行上述操作,结果相同。
- 出于好奇,我在运行 Ubuntu 22.04(使用不同的服务)的 VPS 上尝试了上述操作,结果相同。
- 我尝试了在其他帖子上看到的所有语法变化。
- 我确认这
@includedir /etc/sudoers.d
是最后一句/etc/sudoers
。 - 我已尝试
/etc/sudoers
直接在文件中完成上述所有操作。
有人能给我指明正确的方向吗?我肯定忽略了一些非常明显的东西。
谢谢!
答案1
它开始工作了,但我不知道为什么。我所做的就是将其更改为:family ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart *
。
我将其改回指定服务文件,它继续工作。