File Can';t处理文件时不带";其他";组

File Can';t处理文件时不带";其他";组,file,handle,File,Handle,有时我收到/downlad.pdf文件时没有“其他”组。我的意思是-rw-r-----1根根12889 Mar 26 16:41 Document.pdf。 我需要通过php脚本(读取、移动等)处理它们,但我不能这样做,因为所有者是root:root,而php脚本是www-data:www-data。 我用谷歌搜索了整个互联网,但找不到解决办法。 我尝试使用php内部命令和/或exec()、shell_exec()、system(),但结果是水落石出 这是我使用的一段代码。颠倒操作顺序无效 $n

有时我收到/downlad.pdf文件时没有“其他”组。我的意思是-rw-r-----1根根12889 Mar 26 16:41 Document.pdf。 我需要通过php脚本(读取、移动等)处理它们,但我不能这样做,因为所有者是root:root,而php脚本是www-data:www-data。 我用谷歌搜索了整个互联网,但找不到解决办法。 我尝试使用php内部命令和/或exec()、shell_exec()、system(),但结果是水落石出

这是我使用的一段代码。颠倒操作顺序无效

$new_name = str_replace(' ','',$fname);
$new_name = preg_replace('/\(|\)/','',$new_name);

$command = 'sudo cp $full_fname $dir.$new_name';
$copy = shell_exec($command); //, $output, $retval);

$ch_perms = 'sudo chmod a+rw '. $dir.$new_name;
$permiss = exec($ch_perms, $output, $retval);
即使是chown也没有效果

任何帮助都将不胜感激
tnx

您可以尝试在父目录上使用setgid。如果在
chown root:www-data-parentdir
之后
chmod g+s parentdir
,则创建的任何文件和/或文件夹都将归root所有,并具有www-data的组所有权。您可能还必须将
umask
更改为002。很抱歉,它不起作用。我做了你建议的所有改变,但是。。。没有什么嗯,我没有更改umask,因为我知道umask用于撤销权限,而不是设置权限。用于设置默认权限,它实际上对我所描述的设置非常重要。您可以设置gid以确保将组所有权设置为
www-data
,但如果将umask设置为022(这是许多Linux发行版的默认值),则会导致文件为
rw-r--r--
,这将不允许为
www-data
组中的用户写入。将
umask
更改为002,然后默认的文件权限将是
rw-rw-r--
,这将是您想要的(我认为……基于您发布的问题)。对不起,您是对的。我在年读到了ciberpiula.net上用户librodot的评论。对不起,你是对的。我在年在ciberpiula.net上读到了用户librodot的评论。我在飞行中做了一些测试,当然发生了我创建文件时你所说的事情。我的问题是在下载文件时出现的。Chrome将下载文件的权限设置为-rw-r----而Firefox将设置为-rw-r--r----无论我设置了哪个umask(总是在运行中),所以我会做一些测试,以防万一会让你知道。