我对部署世界很陌生,但这就是正在发生的事情。我有一个来自 DigitalOcean 的新 Ubuntu(Ubuntu 16.04.4 LTS)液滴。我安装并配置了 nginx,一切正常。我使用以下命令打开和关闭它:service nginx start
/service nginx stop
但我需要能够使用另一个名为pepito
.
当我尝试运行service nginx start
时,pepito
我得到:
~# service nginx restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'nginx.service'.
Authenticating as: pepito
Password:
但是我要从 Capistrano 运行它,所以我不想被要求输入密码,所以我添加了visudo
这个:
pepito ALL=(ALL) NOPASSWD: /usr/sbin/service nginx*
再次尝试,同样的问题。继续谷歌搜索和阅读,发现这==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
是一条消息,Polkit
所以我读了一些关于它的信息,并在其中创建了以下文件:/etc/polkit-1/localauthority/50-local.d/nginx.pkla
Identity=unix-user:pepito
Action=org.freedesktop.systemd1.manage-units
ResultInactive=yes
ResultActive=yes
当然,当我尝试从pepito
. 我不知道还能尝试什么!
使用
visudo
您编辑文件的命令/etc/sudoers
,这仅适用于您的命令前缀sudo
,在您的情况下sudo service nginx start
。