我有一个名为 /folder1/folder2/folder3 我们的程序所在的目录;该程序包含一个 php gui、python CLI 工具和许多大文件。大文件通过 gui 上传并由 python 脚本处理(包括处理或移动文件,或创建文件的新处理版本)。
我可以通过以下任一方式为任何受 apache 影响的文件可靠地设置权限位:
chmod($inputs_metric_file, 0777);
//or something like
$oldmask = umask(0);
mkdir($inputs_report_dir, 0777);
然而,这不断失败
chown($inputs_report_dir, "cas");
chgrp($inputs_report_dir, "casgrp");
出现此错误:
警告:chown():第 45 行的 /folder1/folder2/folder3 中不允许操作
警告:chgrp():第 46 行 /folder1/folder2/folder3 中不允许操作
重要提示: apache 不是 casgrp 的成员;我不希望 apache 成为成员,因为它有太多权限。我读过 apache 不能更改组,除非它是新组的成员;我怀疑我需要以某种方式以一种受限制的方式绕过它。即使我能够将 apache 分配给 casgrp,我仍然无法更改用户。
为什么:我们真的希望 /folder1/folder2/folder3 中的所有内容始终分配给 cas:casgrp。
我们在 sudoers 文件中添加了以下几行:
apache ALL=NOPASSWD: /folder1/folder2/folder3/cli_tool1,/folder1/folder2/folder3/cli_tool2,/bin/chown 8008 /folder1/folder2/folder3/
我在 httpd 中读到过,您可以更改以下内容,这可能会为实现目标提供途径:
用户阿帕奇
组阿帕奇
...但我担心,因为我真的不知道这是在做什么,并且出于安全原因不希望 apache 拥有 cas 帐户/组的完整权限...我只希望它能够提供帮助在我们的文件夹层次结构中保持用户/组/权限一致。
我们做错了什么?