Is_writeable失败但我是所有者

时间:2013-04-24 16:59:22

标签: php linux chmod chown

我运行了以下代码,并将在下面给出CHMOD和CHOWN值。但由于某些原因,is_writable一直没能失败。

if (!is_writeable($this->path)) {
  echo 'Current script owner: ' . get_current_user();
  echo '<br />';
  echo $this->path;
  echo '<br />';
  print_r(posix_getpwuid(fileowner($this->path)));
}

目录的CHMOD值为775,所有者为User1。上面的输出是

Current script owner: User1 
path/to/directory  
Array ( [name] => User1 [passwd] => x [uid] => 111 [gid] => 111 [gecos] => [dir] =>
/path/to/user [shell] => /bin/false )

唯一不匹配的是文件的所有者/组是111/1,因此组可能不同但所有者是相同的。 为什么is_writeable会失败?

1 个答案:

答案 0 :(得分:1)

您是所有者还是网络服务器?

您使用网络服务器执行的所有操作都应以www_wwwwww-data运行(具体取决于配置;不同操作系统的默认值)。因此,Web服务器用户不在您的组中,导致该文件无法由Web服务器写入。

(P.s。:get_current_user()是脚本所有者(例如你通过chown设置的),而不是运行用户的脚本。运行用户数据的当前脚本:var_dump(posix_getpwuid(posix_getuid()));