因此,我正在寻找一种方法,在启动时启动系统服务以普通用户身份运行。
我以 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
这将允许用户启动/停止/重新启动服务而无需输入密码。