Изменение разрешений через chmod при ошибках во время выполнения с "Операция не разрешена"

Когда я использую chmod() для изменения разрешений во время выполнения, он дает мне следующее сообщение:

Предупреждение: chmod() [function.chmod]: операция не разрешена в /home/loud/public _html/readalbum.php

Как удалить эту ошибку и заставить работать функцию chmod?

Ответ 1

$ sudo chmod ...

Вам нужно либо быть владельцем файла, либо быть суперпользователем, то есть root пользователя. Если вы являетесь владельцем каталога, но не файла, вы можете скопировать файл, rm оригинал, затем mv обратно, а затем вы сможете его использовать.

Легким способом временно быть root является запуск команды через sudo. ($ man 8 sudo)

Ответ 2

Чтобы выполнить chmod, вы должны быть владельцем файла, который вы пытаетесь изменить, или пользователя root.

Ответ 3

Это сложный вопрос.

Есть ряд проблем с правами доступа к файлам. Если вы можете сделать это в командной строке

$ 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/

Ответ 4

Вы, или, скорее всего, ваш системный администратор, должны войти в систему как root и запустить команду chown: http://www.computerhope.com/unix/uchown.htm

С помощью этой команды вы станете владельцем файла.

Или вы можете быть членом группы, которая владеет этим файлом, а затем вы можете использовать chmod.

Но поговорите со своим системным администратором.