在运行时通过 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 更改权限,出现“不允许操作”错误的主要内容,如果未能解决你的问题,请参考以下文章

Magento cron 更改文件夹权限

linux下修改文件夹权限提示chmod: 更改xx 的权限: 只读文件系统

如何使用 C# 在 OSX 中正确运行 chmod?

Linux更改文件权限命令

chmod命令无法执行

文件和目录权限chmod 更改所有者和所属组chown,umask,lsattr/chattr