Cum funcționează permisiunile pentru fișiere Linux?

Publicat: 2022-01-29

Dacă utilizați Linux de ceva timp (și chiar OS X), probabil că veți fi întâlnit o eroare de „permisiuni”. Dar ce sunt ele mai exact și de ce sunt necesare sau utile? Să aruncăm o privire în interior.

Permisiuni utilizator

Pe vremuri, computerele erau mașini masive care erau incredibil de scumpe. Pentru a profita la maximum de ele, au fost conectate mai multe terminale de computer, ceea ce a permis multor utilizatori să-și desfășoare afacerile simultan. Procesarea și stocarea datelor se făceau pe mașină, în timp ce terminalele în sine erau puțin mai mult decât un mijloc de vizualizare și introducere a datelor. Dacă vă gândiți bine, cam așa este cum accesăm datele de pe „nor”; uitați-vă la sistemul Amazon Cloud MP3, Gmail și Dropbox și veți observa că, deși modificările pot fi făcute local, totul este stocat de la distanță.

(Imagine: terminalul „prost” Zenith Z-19; credit: ajmexico)

Pentru ca acest lucru să funcționeze, utilizatorii individuali trebuie să aibă conturi. Ei trebuie să aibă o secțiune din zona de stocare alocată lor și trebuie să li se permită să ruleze comenzi și programe. Toată lumea primește „permisiuni de utilizator” specifice, care dictează ce pot și nu pot face, unde pe sistem au și nu au acces și ale căror fișiere le pot sau nu le pot modifica. Fiecare utilizator este, de asemenea, plasat în diferite grupuri, care acordă sau restricționează accesul ulterioar.

Acces la fișiere

error reading

În această lume ciudată cu mai mulți utilizatori, am stabilit deja limite cu privire la ceea ce pot face utilizatorii. Dar ce e cu ceea ce accesează? Ei bine, fiecare fișier are un set de permisiuni și un proprietar. Desemnarea proprietarului, de obicei legată atunci când fișierul este creat, declară utilizatorului căruia îi aparține și numai acel utilizator își poate modifica permisiunile de acces.

În lumea Linux, permisiunile sunt împărțite în trei categorii: citire, scriere și execuție. Accesul „Citire” vă permite să vizualizați conținutul unui fișier, accesul „scriere” vă permite să modificați conținutul unui fișier, iar „executarea” vă permite să rulați un set de instrucțiuni, cum ar fi un script sau un program. Fiecare dintre aceste categorii este aplicată la diferite clase: utilizator, grup și lume. „Utilizator” înseamnă proprietar, „grup” înseamnă orice utilizator care se află în același grup cu proprietarul, iar „lume” înseamnă oricine și toată lumea.

no write perm

Publicitate

Folderele pot fi, de asemenea, restricționate cu aceste permisiuni. Puteți, de exemplu, să permiteți altor persoane din grupul dvs. să vadă directoare și fișiere din folderul dvs. principal, dar nu oricui din afara grupului dvs. Probabil că veți dori să limitați accesul de „scriere” doar la dvs., cu excepția cazului în care lucrați la un proiect comun de vreun fel. De asemenea, puteți crea un director partajat care permite oricui să vizualizeze și să modifice fișierele din acel folder.

Modificarea permisiunilor în Ubuntu

GUI

Pentru a modifica permisiunile unui fișier pe care îl dețineți în Ubuntu, faceți clic dreapta pe fișier și accesați „Proprietăți”.

ubuntu permissions

Puteți schimba dacă Proprietarul, Grupul sau Alții pot citi și scrie, numai citire sau nu pot face nimic. De asemenea, puteți bifa o casetă pentru a permite executarea fișierului, iar acest lucru îl va activa pentru Proprietar, Grup și Alții simultan.

Linie de comanda

Puteți face acest lucru și prin linia de comandă. Accesați un director care conține fișiere și tastați următoarea comandă pentru a vizualiza toate fișierele dintr-o listă:

ls -al

Lângă fiecare fișier și director, veți vedea o secțiune specială care prezintă permisiunile pe care le are. Arata cam asa:

-rwxrw-r–

R înseamnă „citește”, w înseamnă „scrie”, iar x înseamnă „execută”. Directoarele vor începe cu „d” în loc de „-“. Veți observa, de asemenea, că există 10 spații care dețin valoare. Puteți ignora primul și apoi sunt 3 seturi de 3. Primul set este pentru proprietar, al doilea set este pentru grup și ultimul set este pentru lume.

Publicitate

Pentru a schimba permisiunile unui fișier sau director, să ne uităm la forma de bază a comenzii chmod.

chmod [clasă][operator][permisiune] fișier

chmod [ugoa][+ sau –] [rwx] fișier

Acest lucru poate părea complicat la început, dar credeți-mă, este destul de ușor. Mai întâi, să ne uităm la clase:

  • u: Acesta este pentru proprietar.
  • g: Acesta este pentru grup.
  • o: Aceasta este pentru toate celelalte.
  • a: Acest lucru va schimba permisiunile pentru toate cele de mai sus.

În continuare, operatorii:

  • +: Semnul plus va adăuga permisiunile care urmează.
  • -: Semnul minus va elimina permisiunile care urmează.

Încă cu mine? Și ultima secțiune este aceeași ca atunci când am verificat permisiunile unui fișier:

  • r: Permite accesul la citire.
  • w: Permite accesul la scriere.
  • x: Permite executarea.

Acum, să le punem împreună. Să presupunem că avem un fișier numit „todo.txt” care are următoarele permisiuni:

-rw-rw-r–

Adică, proprietarul și grupul pot citi și scrie, iar lumea nu poate decât să citească. Dorim să schimbăm permisiunile la acestea:

-rwxr—–

Adică, proprietarul are permisiuni complete, iar grupul poate citi. Putem face acest lucru în 3 pași. Mai întâi, vom adăuga permisiunea de execuție pentru utilizator.

chmod u+x todo.txt

Apoi, vom elimina permisiunea de scriere pentru grup.

chmod gw todo.txt

Publicitate

În cele din urmă, vom elimina permisiunile de citire pentru toți ceilalți utilizatori.

chmod sau todo.txt

De asemenea, le putem combina într-o singură comandă, astfel:

chmod u+x,gw sau todo.txt

Puteți vedea că fiecare secțiune este separată prin virgule și nu există spații.

Iată câteva permisiuni utile:

  • -rwxr-xr-x: Proprietarul are permisiuni complete, grupul și alți utilizatori pot citi conținutul fișierului și pot executa.
  • -rwxr–r–: Proprietarul are permisiuni complete, grupul și alți utilizatori pot citi doar fișierul (util dacă nu vă deranjează că alții vă vor vizualiza fișierele.
  • -rwx——: Proprietarul are permisiuni complete, toate celelalte nu au niciuna (utilă pentru scripturile personale).
  • -rw-rw—-: Proprietarul și grupul pot citi și scrie (util pentru colaborarea cu membrii grupului).
  • -rw-r–r–: Proprietarul poate citi și scrie, grupul și alți utilizatori pot citi doar fișiere (util pentru stocarea fișierelor personale într-o rețea partajată).
  • -rw——-: Proprietarul poate citi și scrie, toate celelalte nu au niciunul (utilă pentru stocarea fișierelor personale).

Există alte câteva lucruri pe care le puteți face cu chmod – cum ar fi setuid și setgid – dar sunt puțin aprofundate și oricum majoritatea utilizatorilor nu vor avea nevoie să le folosească.

Fișierele rădăcină sau super-utilizator și sistem

În zilele noastre, nu rulăm întotdeauna sisteme care au mai mulți utilizatori. De ce ar trebui să ne îngrijorăm în continuare cu privire la permisiuni?

Ei bine, Unix și derivatele sale – Linux, OS X, printre altele – fac de asemenea diferența între lucrurile conduse de utilizator, lucrurile conduse de un administrator sau cu privilegii de administrator și lucrurile conduse de sistemul însuși. Ca atare, lucrurile care sunt integrante pentru sistem au nevoie de privilegii de administrator pentru a fi modificate sau accesate. În acest fel, nu încurci nimic accidental.

Publicitate

În Ubuntu, pentru a face modificări la fișierele de sistem, utilizați „sudo” sau „gksudo” pentru a obține echivalentul privilegiilor de administrator. În alte distribuții, treci la „rădăcină” sau la „super-utilizator”, care face efectiv același lucru până când te deconectezi.

Rețineți că, în ambele circumstanțe, modificarea permisiunilor pentru fișiere poate duce la nefuncționarea programelor, schimbarea neintenționată a proprietății fișierului către utilizatorul root (în loc de proprietar) și făcând sistemul mai puțin sigur (prin acordarea de mai multe permisiuni). Ca atare, este recomandat să nu modificați permisiunile pentru fișiere – în special fișierele de sistem – decât dacă este necesar sau știți ce faceți.


Permisiunile pentru fișiere sunt în vigoare pentru a oferi un sistem de bază de securitate în rândul utilizatorilor. Învățarea modului în care funcționează vă poate ajuta să configurați partajarea de bază într-un mediu cu mai mulți utilizatori, să protejați fișierele „publice” și să vă ofere un indiciu despre când ceva nu merge bine cu proprietatea fișierelor de sistem.

Crezi că poți explica lucrurile mai ușor? Ai o corectie? Vrei să-ți amintești de vremurile vechi? Luați o pauză și lăsați-vă gândurile în comentarii.