![Sudo: 프로그램이 서비스로 시작되면 "작업이 허용되지 않습니다"가 발생하지만 수동으로 시작하면 작동합니다. 왜? [폐쇄]](https://linux55.com/image/151354/Sudo%3A%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%B4%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A1%9C%20%EC%8B%9C%EC%9E%91%EB%90%98%EB%A9%B4%20%22%EC%9E%91%EC%97%85%EC%9D%B4%20%ED%97%88%EC%9A%A9%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4%22%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EC%A7%80%EB%A7%8C%20%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%A9%B4%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4.%20%EC%99%9C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
sudo echo 'toto'
사용자 정의 Go 프로그램에서 sudo(예:)로 명령을 실행할 수 있어야 합니다 . 내 사용자를 추가했는데 /etc/sudoers
내 사용자로 로그인하여 프로그램을 수동으로 실행하면 제대로 작동합니다.
그러나 systemd 서비스에서 똑같은 프로그램을 실행하면 다음 오류가 발생합니다.
sudo: unable to change to root gid: Operation not permitted
sudo: unable to initialize policy plugin
내 서비스는 기본입니다.
[Unit]
Description=test sudo
[Service]
User=test
Group=test
ExecStart=/etc/test/test
내 /etc/sudoers
:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
test ALL = NOPASSWD: ALL
내 사용자로서 이 프로그램을 수동으로 실행하는 것과 동일한 프로그램을 서비스로 시작하는 것의 차이점은 무엇입니까?
Ubuntu 18.04 및 Debian 9.9에서 테스트되었습니다.
답변1
마침내 문제를 발견했습니다. CapabilityBoundingSet
어떤 이유로 인해 내 서비스 sudo
에 제한된 작업 목록이 추가되었습니다.