【问题标题】:Changing permissions via chmod at runtime errors with "Operation not permitted"在运行时通过 chmod 更改权限,出现“不允许操作”错误
【发布时间】:2010-12-08 05:12:33
【问题描述】:

当我在运行时使用chmod() 更改权限时,它给了我以下消息:

警告:chmod() [function.chmod]:/home/loud/public_html/readalbum.php 中不允许操作

如何消除此错误并让chmod 函数正常工作?

【问题讨论】:

  • 在问题最初不涉及使用终端时,投反对票使用PHP解决问题,然后接受终端回答! ??????

标签: php permissions chmod


【解决方案1】:

这是一个棘手的问题。

有一系列关于文件权限的问题。如果您可以在命令行中执行此操作

$ sudo chown myaccount /path/to/file

那么你有一个标准的权限问题。确保您拥有该文件并有权修改该目录。

如果您无法获得权限,那么您可能安装了 FAT-32 文件系统。如果您 ls -l 该文件,并且您发现它归 root 用户和“plugdev”组的成员所有,那么您可以确定它是问题所在。 FAT-32 权限是在挂载时设置的,使用 /etc/fstab 文件的行。您可以像这样设置所有文件的 uid/gid:

UUID=C14C-CE25  /big            vfat    utf8,umask=007,uid=1000,gid=1000 0       1

另外,请注意 FAT-32 不会采用符号链接。

把整件事写在http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/

【讨论】:

    【解决方案2】:
    $ sudo chmod ...
    

    您需要成为文件的所有者或超级用户,即用户 root。如果你拥有目录但不拥有文件,你可以复制文件,rm 原始文件,然后 mv 回来,然后你就可以 chown 了。

    临时成为 root 的简单方法是通过 sudo 运行命令。 ($man 8 sudo)

    【讨论】:

    • 确实,编辑后的答案对我帮助很大,因为我完全忘记了 copypasta 劫持。
    • 如果您在单行(或 sudo su)中运行它们,您还需要将 sudo 应用于每个命令运行。
    【解决方案3】:

    为了执行 chmod,您需要是您尝试修改的文件的所有者,或者是 root 用户。

    【讨论】:

      【解决方案4】:

      您,或者很可能是您的系统管理员,需要以 root 身份登录并运行 chown 命令: http://www.computerhope.com/unix/uchown.htm

      通过此命令,您将成为文件的所有者。

      或者,您可以成为拥有此文件的组的成员,然后您可以使用 chmod。

      但是,请与您的系统管理员交谈。

      【讨论】:

      • OP 似乎更有可能没有“系统管理员”。
      • 然后他需要以 root 身份登录,但这就是为什么我提供了 chown 的链接,因为通过群组成员身份进行交谈会更费力。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2020-03-26
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      相关资源
      最近更新 更多