2009-10-20 73 views
12

当我使用chmod()改变在运行时的权限,它给了我下面的消息:更改权限“不允许操作”

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

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

回答

16
$ sudo chmod ... 

你需要或者是该文件的所有者或者是超级用户,即用户。如果你拥有目录而不是文件,你可以复制文件,rm原件,然后mv回来,然后你就可以播放它。

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

+20

http://xkcd.com/149/ – 2009-10-20 03:44:54

+0

ROTFL .......... – DigitalRoss 2009-10-20 04:41:51

+0

我在编辑之前没有看到,但是为什么倒下了票?现在看起来很合理...... – atk 2009-10-21 18:53:33

3

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

+0

或课程 – Joel 2009-10-20 03:41:12

+0

@Joel根:对,补充说。 – 2009-10-20 03:54:12

0

你,或者最有可能你的系统管理员,将需要以root登陆并运行chown命令: http://www.computerhope.com/unix/uchown.htm

通过这个命令,你将成为文件的所有者。

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

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

+0

OP似乎更有可能*没有*'sysadmin'。 – pavium 2009-10-20 03:46:05

+0

然后,他将需要以root用户身份登录,但这就是为什么我给chown链接的原因,因为通过组成员通话将会有更多工作。 – 2009-10-20 03:47:38

1

这是一个棘手的问题。

存在一组关于文件权限的问题。如果你可以在命令行上做到这一点

$ sudo chown myaccount /path/to/file 

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

如果你不能获得权限,那么你可能已经挂载了一个FAT-32文件系统。如果您的文件为ls -l,并且您发现该文件由root和“plugdev”组的成员拥有,那么您肯定会遇到问题。使用/ etc/fstab文件行时,挂载时会设置FAT-32权限。你可以这样设置的所有文件的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/