我正在为基本的 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
。以下是目录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
知道是什么原因造成的吗?
答案1
经过一番折腾,我最终发现树中较高位置的某些目录(即/home/otheruser
)不允许执行foo
。虽然Website
目录具有正确的权限,但上面的目录却没有,这导致了失败。