【发布时间】:2017-01-08 04:57:54
【问题描述】:
我正在开发 apache 服务器并使用以下代码生成一些 tmpdir。
$tmpdatadir = "/home/user/tmpdata/".$id."/";
if (mkdir($tmpdatadir)) {
/* do something */
}
创建的目录:
drwxr-xr-x 2 www-data www-data 4096 Aug 30 17:16 147257020639481
但是当我尝试使用
写入一些数据时exec ("cat file.txt >". $tmpdatadir."sample.txt")
我收到以下错误消息。
权限被拒绝。当我将文件复制为用户:用户时,我该如何更改目录的权限。我发现 chown 会这样做,但我不确定如何更改整个目录的所有权。
【问题讨论】:
-
使用
print shell_exec('whoami');来查看,女巫用户正在运行您的cat行。如果不是(我说不会)www-data,那就是问题所在。创建目录后,您必须更改文件夹的权限。 -
是的,它是 www-data 但是创建目录后如何更改权限?
-
但我检查了 chown 用户必须是超级用户,但需要输入密码。 System("chown -R".$user.":".$user." myfolder");
-
我认为你应该完全使用 PHP(和 php 函数)来完成它,而不是使用 PHP 创建文件夹,然后通过
system()*command line* 完成其余的工作,完全使用 PHP 完成。因为此时您是正确的用户www-data,并且可以从那里更改权限。