2009-10-20 124 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/