如果这个问题更适合 Stack Overflow,我提前表示歉意。
我们有一个 CentOS cPanel 服务器,我们想与另一个用户共享一些 PHP 代码库。我们没有open_basedir
在任何帐户上启用它,并且在 httpd 中已禁用。我创建了一个指向代码库的符号链接,并0711
递归地设置了权限,但当包含位于另一个用户主目录中的脚本时,PHP 仍然会抛出权限错误。
我们希望实现的是允许用户 x 仅以执行权限访问用户 y 的代码库。我们不介意用户 y 是否可以看到代码,只是我们不希望对代码库有写权限。由于此代码库不断更新,我们宁愿不将代码复制到用户 y 的主目录中。
关于如何实现这一点有什么建议吗?
更新:我认为 PHP 可能在安全模式下运行,我检查了 php.ini,并将其safe_mode
设置safe_mode_gid
为Off
答案1
要找到文件,用户至少需要所有父目录(即 /home 和 /home/you)的 --x (1) 权限。仅当您不知道所需文件的名称时才需要 -rx (5)。将 php 脚本作为服务器脚本执行仅需要 -r- (4) 权限(apache 仅读取脚本并在内部执行),而从命令行执行此操作(通常)需要 -rx (5)。例外情况是如果您的平台允许使用设置用户/组 ID 位,在这种情况下您可以使用 --x(请参阅 man chmod)。
答案2
如果您想与另一个用户/组共享 PHP 脚本代码,您就必须为您的 php 进程的用户/组设置对文件的读取权限,并对文件路径中的目录设置执行权限。