基本的なWebサーバーの権限を設定していますが、systemdでサーバーを起動するのにいくつかの問題があります。
私の仕事の説明では、次のようにユーザーとグループを「foo」に設定しました。
[Service]
WorkingDirectiory=/home/otheruser/Website
ExecStart=/home/otheruser/Website/bin/site -Dhttp.port=7000
User=foo
Group=foo
Website
ディレクトリのグループを再帰的にfoo
に変更し、グループにsite
バイナリの実行権限を与えるようにしました。それでも問題が解決しない場合、chown
のディレクトリ全体をfoo
dしました。これがls -la
はbin
ディレクトリに表示されます。
drwxr-xr-x 2 foo foo 4096 Sep 5 16:13 .
drwxr-xr-x 7 foo foo 4096 Sep 5 18:07 ..
-rwxr-xr-x 1 foo foo 8502 Sep 5 16:13 site
とにかく、systemdジョブを開始しようとすると、まだこのエラーが発生します。
foo.service: Failed at step EXEC spawning /home/otheruser/Website/bin/site: Permission denied
これを引き起こしている可能性のあるアイデアはありますか?
もう少しいじってみたところ、ツリーの上位にあるディレクトリ(つまり、/home/otheruser
)はfoo
による実行を許可していませんでした。 Website
ディレクトリには適切な権限がありましたが、上記のディレクトリにはありませんでした。これが失敗の原因でした。