![루트가 아닌 사용자로부터 "service nginx restart"를 실행해 보십시오.](https://linux55.com/image/129139/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%EC%95%84%EB%8B%8C%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A1%9C%EB%B6%80%ED%84%B0%20%22service%20nginx%20restart%22%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%B4%20%EB%B3%B4%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
저는 배포 세계에 익숙하지 않지만 현재 진행 중인 작업은 다음과 같습니다. 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
.