De ce primesc mesajul de eroare „permission denied” când execut comanda find din Linux (Unix, Linux, Găsiți)

Nightmoon a intrebat.

Execut următoarea comandă:

find / -name ben

M-am întrebat, de ce există atât de multe permisiuni refuzate atunci când se execută comanda de mai sus? Chiar și acele directoare care nu conține numele ben apar.

Comentarii

  • Deoarece find pornește din directorul rădăcină al sistemului dvs. (/) și dacă nu sunteți utilizatorul root nu aveți permisiunea de a vă uita în cele mai relevante directoare ale sistemului, cum ar fi /proc și așa mai departe. Pe de altă parte, în calitate de utilizator root, veți avea același mesaj pentru directoarele personale ale utilizatorilor. –  > Por eblock.
1 răspunsuri
schily

Pentru a căuta un fișier, trebuie să poți citi toate directoarele.

Dacă un director căutat nu îți acordă permisiuni de citire și „execute”, primești o eroare de permission denied din partea programului find.

Dacă lipsește permisiunea de citire pentru dumneavoastră, atunci nu puteți vedea ce fișiere se află într-un astfel de director.

Dacă vă lipsește permisiunea de „executare” (căutare), nu puteți chdir intra în acel director și, ca urmare, nu puteți verifica subdirectoarele din acel director.

Fiecare sistem de operare are nevoie (din motive de securitate) de directoare care nu pot fi căutate de către oamenii obișnuiți, iar alți utilizatori pot avea închis și ei directorul lor de acasă.