无法使用没有密码的用户启动服务

无法使用没有密码的用户启动服务

因此,我正在寻找一种方法,在启动时启动系统服务以普通用户身份运行。

我以 root 身份创建了服务文件/etc/systemd/system/my-service.service,然后当我尝试以普通用户身份启动服务时:service my-service start我有机会选择运行服务的用户,但随后系统还要求我输入密码。但是,我并没有特意为该用户设置密码,我只使用私钥进行身份验证。对于我创建的服务,我只需要以特定用户身份执行命令,而不是 root。我在这里有什么选择?

答案1

您需要 root 访问权限才能启动服务,即使它们设置为以用户身份运行。

所以:

sudo service my-service start

但是您的用户需要访问 sudo ... 对于在 ubuntu 上设置的第一个用户,通常默认情况下是这样的。然后您需要输入您自己的用户的密码(而不是服务运行时的密码)。

您还可以设置/etc/sudoers允许用户运行命令而无需输入密码。

答案2

您应该访问该/etc/sudoers文件并添加以下行:

user   ALL=NOPASSWD:/etc/systemd/system/my-service.service

这将允许用户启动/停止/重新启动服务而无需输入密码。

相关内容