web-dev-qa-db-fra.com

Modification des autorisations via chmod lors d'erreurs d'exécution avec "Opération non autorisée"

Lorsque j'utilise chmod() pour modifier les autorisations au moment de l'exécution, le message ci-dessous s'affiche:

Avertissement: chmod () [function.chmod]: opération non autorisée dans /home/loud/public_html/readalbum.php. 

Comment puis-je supprimer cette erreur et faire fonctionner la fonction chmod?

13
Deepak
$ Sudo chmod ...

Vous devez soit être le propriétaire du fichier, soit être le super-utilisateur, c'est-à-dire l'utilisateur root . Si vous possédez le répertoire mais pas le fichier, vous pouvez copier le fichier, récupérer l'original, puis le restaurer, puis vous pourrez le chown.

Le moyen le plus simple d’être temporairement root est d’exécuter la commande via Sudo. ($ man 8 Sudo)

18
DigitalRoss

Pour exécuter chmod, vous devez être propriétaire du fichier que vous essayez de modifier ou de l'utilisateur root.

3
Martin v. Löwis

C'est une question délicate.

Il existe un ensemble de problèmes concernant les autorisations de fichiers. Si vous pouvez le faire en ligne de commande

$ Sudo chown myaccount /path/to/file

alors vous avez un problème d'autorisations standard. Assurez-vous que le fichier vous appartient et que vous avez l'autorisation de modifier le répertoire.

Si vous ne pouvez pas obtenir d'autorisations, alors vous avez probablement monté un système de fichiers FAT-32. Si vous ls -l le fichier et que vous trouvez qu'il appartient à root et à un membre du groupe "plugdev", alors vous êtes certain que c'est le problème. Les autorisations FAT-32 sont définies au moment du montage, à l'aide de la ligne du fichier/etc/fstab. Vous pouvez définir le uid/gid de tous les fichiers comme ceci:

UUID=C14C-CE25  /big            vfat    utf8,umask=007,uid=1000,gid=1000 0       1

Notez également que la FAT-32 ne prendra pas de liens symboliques. 

A écrit le tout à http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/

1
Charles Merriam

Vous, ou très probablement votre administrateur système, devrez vous connecter en tant que root et exécuter la commande chown: http://www.computerhope.com/unix/uchown.htm

Grâce à cette commande, vous devenez le propriétaire du fichier.

Ou, vous pouvez être membre d'un groupe qui possède ce fichier et ensuite utiliser chmod.

Mais, parlez avec votre administrateur système.

0
James Black