在运行时通过 chmod 更改权限,出现“不允许操作”错误
Posted
技术标签:
【中文标题】在运行时通过 chmod 更改权限,出现“不允许操作”错误【英文标题】:Changing permissions via chmod at runtime errors with "Operation not permitted" 【发布时间】:2010-12-08 05:12:33 【问题描述】:当我在运行时使用chmod()
更改权限时,它给了我以下消息:
警告:chmod() [function.chmod]:/home/loud/public_html/readalbum.php 中不允许操作
如何消除此错误并让chmod
函数正常工作?
【问题讨论】:
在问题最初不涉及使用终端时,投反对票使用PHP解决问题,然后接受终端回答! ?????? 【参考方案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 的链接,因为通过群组成员身份进行交谈会更费力。以上是关于在运行时通过 chmod 更改权限,出现“不允许操作”错误的主要内容,如果未能解决你的问题,请参考以下文章