【问题标题】:chgrp : Operation not permitted?chgrp : 不允许操作?
【发布时间】:2014-06-30 01:00:09
【问题描述】:

我有这行简单的代码:

      mkdir($path_to_rpi, 0755);
      chgrp($path_to_rpi, 'sambashare');

目录创建为 www-data 和组是相同的。 www-data 拥有该目录,但 chgrp 失败?!?

我在这里错过了什么?

【问题讨论】:

  • 也许 www-data 没有权限将目录添加到该组。
  • 我不确定我是否理解...www-data 创建目录很好,并且所有者和组默认情况下是 www-data...我应该能够 chgrp no???
  • 我不是 100% 确定,请查看这个,但我想如果用户不是目录被分配到的组的成员,它不能给它。跨度>
  • 我不确定我是否清楚地解释了自己...用户“www-data”是 apache 的默认用户帐户,该组也是。创建文件夹时,它位于 www-data 作为所有者和组。没有其他组,AFAIK。
  • 但是用户www-datasambashare 组的成员吗?如果不是,则不允许该操作。

标签: php file-permissions


【解决方案1】:

确认我的评论:

您必须是要更改所有权的群组的成员。

http://unixhelp.ed.ac.uk/tasks/change_own.html

(死链接;使用这个:https://theory.uwinnipeg.ca/UNIXhelp/tasks/change_own.html

【讨论】:

  • 我仍然缺少一些东西 :) www-data 是用户和组...www-data 已经是组 www-data 的成员(我使用组 www-data 来确认这一点)。
  • 让我们尝试一下。你是www-data,我是sambashare。你试图给我你的目录,我说,“你没有权限给我那个”,你问,“为什么不呢?”,我回答,“因为你不是我组的成员”。
  • 好的,我将 www-data 添加到 sambashare 组,但仍然不允许 PHP 代码进行 chgrp :(
  • www-data 可能需要重新登录。
  • 你重启了 Apache 吗?组成员身份更改不会影响正在运行的进程。
【解决方案2】:

今天我自己也遇到了这个。这是我发现的关于该主题的最佳帖子,但没有明确的答案,只有几个不同优点的 cmet。所以这里是一个简明的总结。

--Setup--
User  : apache
Group : web
Goal  : make a new directory 'newone' owned by apache and group of web
Verify: >ls -l shows: drwxr-xr-x 2 apache web  4096  ...   newone

step 1:  apache must be a member of group web (@Flosculus answer)
check : > grep ^web /etc/group
to add: > usermod -a -G web apache

step 2: restart apache (@Andrew Mecidoo comment)
restart: > service httpd restart

step 3: make the directory
PHP: mkdir('newone', 0755);
PHP: chgrp('newone', 'web');

step 4: verify permissions
verify : > ls -l

为我工作。希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 2012-01-03
    • 2021-02-10
    • 2021-01-01
    • 2014-11-01
    • 2012-03-19
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多