我有一个名为/ 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():/ folder1 / folder2 / folder3中不允许操作 第45行
警告:chgrp():/ folder1 / folder2 / folder3中不允许操作 第46行
重要说明: apache不是casgrp的成员;我不希望apache成为成员,因为它拥有太多权限。我已经读过,除非它是新组的成员,否则apache无法更改组;我怀疑我需要以某种方式并以限制的方式绕过它。即使我能够为casgrp分配apache,我仍然无法更改用户。
为什么:我们真的希望将/ 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
分组apache
...但我担心,因为我真的不知道这是做什么的,并且出于安全原因,不希望apache拥有cas帐户/组的完全权限......我只是希望它能够帮助保持用户/组/权限在我们的文件夹层次结构中保持一致。
我们做错了什么?