Dacă folosiți Linux de ceva timp (și chiar OS X), probabil veți întâlni o eroare de „permisiuni”. Dar ce anume sunt acestea și de ce sunt necesare sau utile? Să aruncăm o privire interioară.
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 care au permis multor utilizatori să își desfășoare activitatea simultan. Prelucrarea și stocarea datelor s-a făcut 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 la asta, este destul de mult modul în care accesăm datele de pe „nor”; uitați-vă la sistemul Amazon MP3 Cloud, 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. Trebuie să li se aloce o secțiune din zona de stocare și trebuie să li se permită să ruleze comenzi și programe. Toată lumea primește „permisiuni de utilizator” specifice, care dictează ce pot și ce nu pot face, unde din sistem fac și nu au acces și ale căror fișiere pot și nu le pot modifica. Fiecare utilizator este, de asemenea, plasat în diferite grupuri, care acordă sau restricționează accesul suplimentar.
Acces la fișiere
În această lume nebună a mai multor utilizatori, am stabilit deja limite cu privire la ceea ce pot face utilizatorii. Dar ce se întâmplă cu ce accesează? Ei bine, fiecare fișier are un set de permisiuni și un proprietar. Desemnarea proprietarului, legată de obicei la crearea fișierului, declară cărui utilizator î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 executare. Accesul „citit” permite vizualizarea conținutului unui fișier, accesul „scriere” permite modificarea conținutului unui fișier, iar „executare” permite executarea unui set de instrucțiuni, cum ar fi un script sau un program. Fiecare dintre aceste categorii se aplică diferitelor clase: utilizator, grup și lume. „Utilizator” înseamnă proprietar, „grup” înseamnă orice utilizator care se află în același grup cu proprietarul și „lume” înseamnă oricine și toată lumea.
De asemenea, folderele pot fi restricționate cu aceste permisiuni. Puteți, de exemplu, să permiteți altor persoane din grupul dvs. să vizualizeze directoare și fișiere în folderul dvs. de acasă, dar nu pe nimeni din afara grupului dvs. Probabil că veți dori să limitați accesul „la scriere” numai la dvs., cu excepția cazului în care lucrați la un proiect comun de un 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”.
Puteți schimba dacă Proprietarul, Grupul sau Alții pot citi și scrie, numai în citire sau nu pot face nimic. De asemenea, puteți bifa o casetă pentru a permite executarea fișierului, iar acest lucru îl va permite simultan proprietarului, grupului și altora.
Linie de comanda
Puteți face acest lucru și prin linia de comandă. Mergeți la 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. Arată așa:
-rwxrw-r–
r înseamnă „citiți” în înseamnă „scrie” și X înseamnă „executați”. Directoarele vor începe cu un „d” în loc de „-“. De asemenea, veți observa că există 10 spații care dețin valoare. Puteți ignora primul, apoi există 3 seturi de 3. Primul set este pentru proprietar, al doilea set este pentru grup, iar ultimul set este pentru lume.
Pentru a modifica permisiunile unui fișier sau director, să analizăm forma de bază a comenzii chmod.
chmod [class][operator][permission] fișier
chmod [ugoa][+ or –] [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 cursuri:
- u: Aceasta este pentru proprietar.
- g: Aceasta este pentru grup.
- o: Aceasta este pentru toți ceilalți.
- a: Aceasta va modifica permisiunile pentru toate cele de mai sus.
Apoi, 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ă o 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 poate citi numai. Vrem să schimbăm permisiunile pentru 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 g-w todo.txt
În cele din urmă, vom elimina permisiunile de citire pentru toți ceilalți utilizatori.
χμοδ ο-ρ τοτό.τχτ
De asemenea, le putem combina într-o singură comandă, astfel:
chmod u + x, g-w, o-r 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 ceilalți utilizatori pot citi fișierul (util dacă nu vă deranjează ceilalți să vă vadă fișierele.
- -rwx——: Proprietarul are permisiuni complete, toți ceilalți nu au (util pentru scripturile personale).
- -rw-rw—-: Proprietarul și grupul pot citi și scrie (utile pentru colaborarea cu membrii grupului).
- -rw-r – r–: Proprietarul poate citi și scrie, grupa și ceilalți utilizatori pot citi doar fișiere (utile pentru stocarea fișierelor personale într-o rețea partajată).
- -rw ——-: Proprietarul poate citi și scrie, toți ceilalți nu au (util pentru stocarea fișierelor personale).
Există câteva alte lucruri pe care le puteți face cu chmod - cum ar fi setuid și setgid -, dar sunt puțin aprofundate, iar majoritatea utilizatorilor nu vor avea nevoie să le folosească oricum.
Rădăcina sau Super-utilizator și fișierele de sistem
În zilele noastre, nu rulăm întotdeauna sisteme care au mai mulți utilizatori. De ce ar trebui să ne mai facem griji cu privire la permisiuni?
Ei bine, Unix și derivatele sale - Linux, OS X, printre altele - fac, de asemenea, distincție între lucrurile administrate de utilizator, lucrurile administrate de un administrator sau cu privilegii de administrator și lucrurile rulate de sistemul însuși. Ca atare, lucrurile care fac parte integrantă din sistem necesită privilegii de administrator pentru a fi modificate sau accesate. În acest fel, nu deranjați nimic accidental.
Î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, treceți la „root” sau la „super-utilizator”, care face efectiv același lucru până când vă deconectați.
Rețineți că, în ambele circumstanțe, modificarea permisiunilor de fișiere poate duce la defectarea programelor, schimbarea neintenționată a proprietății fișierului către utilizatorul root (în loc de proprietar) și reducerea siguranței sistemului (acordând mai multe permisiuni). Ca atare, este recomandat să nu modificați permisiunile pentru fișiere - în special fișiere de sistem - dacă nu este necesar sau dacă știți ce faceți.
Permisiuni de fișiere sunt în vigoare pentru a oferi un sistem de bază de securitate între utilizatori. Învățarea modului în care funcționează vă poate ajuta să configurați partajarea de bază într-un mediu multi-utilizator, să protejați fișierele „publice” și să vă oferiți o idee despre când ceva nu funcționează cu proprietatea fișierelor de sistem.
Crezi că poți explica lucrurile mai ușor? Aveți o corecție? Doriți să vă amintiți de vremurile vechi? Faceți o pauză și puneți-vă gândurile în comentarii.