允许PHP chown,chgrp和chmod特定文件&具有特定用户和目录的目录组

时间:2017-08-23 13:49:38

标签: php apache chown chgrp

我有一个名为/ 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帐户/组的完全权限......我只是希望它能够帮助保持用户/组/权限在我们的文件夹层次结构中保持一致。

我们做错了什么?

0 个答案:

没有答案