Schimbarea permisiunilor prin chmod în timpul execuției dă erori cu „Operation not permitted” (Programare, Php, Permisiuni, Chmod)

Deepak a intrebat.

Când folosesc chmod() pentru a schimba permisiunile în timpul execuției, îmi dă mesajul de mai jos:

Avertizare: chmod() [function.chmod]: Operațiune nepermisă în /home/loud/public_html/readalbum.php

Cum pot să elimin această eroare și să fac ca chmod funcția să funcționeze?

Comentarii

  • Down-voted pentru că ai folosit PHP pentru a rezolva problema și apoi ai acceptat răspunsul terminal când întrebarea nu a implicat utilizarea terminalului în primul rând! –  > Por John.
4 răspunsuri
DigitalRoss
$ sudo chmod ...

Trebuie să fii fie proprietarul fișierului, fie să fii superuser, adică utilizator root. Dacă sunteți proprietarul directorului, dar nu și al fișierului, puteți copia fișierul, rm originalul, apoi mv înapoi și apoi veți putea să-l chown.

Modalitatea simplă de a fi temporar root este de a rula comanda prin sudo. ($ man 8 sudo)

Comentarii

  • Într-adevăr, răspunsul editat m-a ajutat foarte mult, deoarece am uitat complet de deturnarea copypasta. –  > Por John.
  • De asemenea, trebuie să aplicați sudo la fiecare comandă executată dacă le executați într-un singur rând (sau sudo su). –  > Por timelmer.
Martin v. Löwis

Pentru a efectua chmod, trebuie să fiți proprietarul fișierului pe care încercați să îl modificați sau utilizatorul root.

Charles Merriam

Aceasta este o întrebare dificilă.

Există o serie de probleme legate de permisiunile fișierelor. Dacă puteți face acest lucru la linia de comandă

$ sudo chown myaccount /path/to/file

atunci aveți o problemă de permisiuni standard. Asigurați-vă că sunteți proprietarul fișierului și că aveți permisiunea de a modifica directorul.

Dacă nu puteți obține permisiuni, atunci probabil că ați montat un sistem de fișiere FAT-32. În cazul în care ls -l fișierul și descoperiți că acesta este deținut de root și este membru al grupului „plugdev”, atunci sunteți sigur că aceasta este problema. Permisiunile FAT-32 sunt setate în momentul montării, folosind linia din fișierul /etc/fstab. Puteți seta uid/gid-ul tuturor fișierelor în felul următor:

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

De asemenea, rețineți că FAT-32 nu acceptă legături simbolice.

Ați scris totul la http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/

James Black

Dumneavoastră, sau cel mai probabil administratorul de sistem, va trebui să vă conectați ca root și să rulați comanda chown:http://www.computerhope.com/unix/uchown.htm

Prin intermediul acestei comenzi veți deveni proprietarul fișierului.

Sau, puteți fi membru al unui grup care deține acest fișier și apoi puteți folosi chmod.

Dar, discutați cu administratorul de sistem.

Comentarii

  • Pare mai probabil ca OP să nu știe că să aibă un „sysadmin”. –  > Por pavium.
  • Atunci va trebui să se logheze ca root, dar de aceea am dat linkul pentru chown, deoarece discutarea apartenenței la un grup ar fi un pic mai dificilă. –  > Por James Black.