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
に限定されたタスクのリストが追加されました。