【问题标题】:Is_writeable fails but I am the ownerIs_writeable 失败,但我是所有者
【发布时间】:2013-04-18 08:29:55
【问题描述】:

我正在运行以下代码,并将在下面给出 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 会失败?

【问题讨论】:

    标签: php linux chmod chown


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-13
      • 2023-01-17
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 2021-01-05
      • 1970-01-01
      相关资源
      最近更新 更多