我正在运行一个程序(syslog-ng),它必须在给定路径中读取和写入多个文件。它在启动时失败,声称无法打开该路径中的文件。
请假设这个目录结构:
/var/platform/program
该platform
目录的权限设置为0655(所有者用户没有执行权限)。如果我将该权限更改为 0755,syslog-ng 就可以正常工作。
另一方面,我用 C 编写了一个小程序,尝试打开并写入同一目录中的文件,并且在以 root 身份运行时工作正常,但 syslog-ng 失败......
在这种情况下可能会出现什么问题?
答案1
syslog 可能想要chdir
访问该目录,因此需要在该目录上设置执行位。
看执行与读取位。 Linux 中的目录权限如何工作?了解更多信息。