저는 배포 세계에 익숙하지 않지만 현재 진행 중인 작업은 다음과 같습니다. 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
물론 nginx에서 nginx를 시작하고 중지하려고 하면 작동하지 않습니다 pepito
. 나는 무엇을 더 시도해야할지 모르겠습니다!
답변1
visudo
편집 중인 파일을 사용하는 명령은 /etc/sudoers
명령에 접두사를 추가하는 경우 에만 sudo
적용됩니다 sudo service nginx start
.