Cum funcționează permisiunile de fișiere Linux?
Dacă utilizați Linux ceva timp (și chiar OS X), probabil că ați întâmpinat o eroare de "permisiuni". Dar ce anume sunt și de ce sunt necesare sau utile? Să aruncăm o privire interioară.
Permisiuni utilizator
Începând cu ziua, computerele erau mașini masive care erau incredibil de costisitoare. Pentru a profita la maximum de acestea, s-au conectat mai multe terminale de calculatoare, ceea ce a permis mai multor utilizatori să își desfășoare afacerea simultan. Prelucrarea și stocarea datelor au fost efectuate 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 cum accesăm datele despre "nor"; uita-te la sistemul Amazon's Cloud MP3, Gmail și Dropbox, și vei observa că în timp ce schimbările pot fi făcute la nivel local, totul este stocat de la distanță.
(Imagine: terminal Zenith Z-19 "mut", credit: ajmexico)
Pentru ca acest lucru să funcționeze, utilizatorii individuali trebuie să aibă conturi. Ei trebuie să aibă o secțiune a spațiului de stocare alocată acestora și trebuie să li se permită să execute comenzi și programe. Toată lumea primește anumite "permisiuni de utilizator", care dictează ceea ce pot și nu pot face, unde în sistem au și nu au acces și ale căror fișiere pot și nu le pot modifica. Fiecare utilizator este, de asemenea, plasat în diverse grupuri, care acordă sau restricționează accesul în continuare.
Accesul la fișiere
În această lume cu utilizatori multipli, am stabilit deja limite privind ce pot face utilizatorii. Dar despre ce accesează ei? Ei bine, fiecare fișier are un set de permisiuni și un proprietar. Desemnarea proprietarului, legată în mod obișnuit atunci când fișierul este creat, declară la care utilizator aparține și numai acel utilizator poate modifica permisiunile de acces.
În lumea Linux, permisiunile sunt împărțite în trei categorii: citiți, scrieți și executați. Accesul "Read" permite vizualizarea conținutului unui fișier, accesul "write" permite modificarea conținutului unui fișier, iar execuția 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 ca și proprietarul, iar "lumea" înseamnă oricine și toată lumea.
Dosarele pot fi, de asemenea, restricționate cu aceste permisiuni. De exemplu, puteți permite altor persoane din grupul dvs. să vizualizeze directoare și fișiere în dosarul dvs. de acasă, dar nu pe nimeni în afara grupului dvs. Veți dori, probabil, să limitați accesul la "scriere" numai dvs., cu excepția cazului în care lucrați la un proiect comun de un fel. Puteți crea, de asemenea, un director partajat care permite oricui să vizualizeze și să modifice fișierele din acel director.
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 mergeți la "Proprietăți".
Puteți modifica dacă proprietarul, grupul sau alții pot citi și scrie, citesc sau nu pot face nimic. Puteți, de asemenea, să bifați o casetă pentru a permite executarea fișierului, ceea ce î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 are fișiere în el și tastați următoarea comandă pentru a vizualiza toate fișierele dintr-o listă:
Asa-i
Alături de fiecare fișier și director, veți vedea o secțiune specială care prezintă permisiunile pe care le are. Arată astfel:
-rwxrw-r-
r înseamnă "citiți"; w înseamnă "scrie" și X înseamnă "executa". Directorii vor începe cu un "d" în loc de un "-". De asemenea, veți observa că există 10 spații care dețin valoare. Puteți ignora primul și 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 schimba permisiunile unui fișier sau al unui director, să examinăm forma de bază a comenzii chmod.
chmod [clasa] [operatorul] [permisiune] fișier
fișierul chmod [ugoa] [+ sau -] [rwx]
Acest lucru poate părea complicat la început, dar crede-mă, este destul de ușor. În primul rând, să examinăm clasele:
- u: Acesta este pentru proprietar.
- g: Acesta este pentru grup.
- o: Aceasta este pentru toate celelalte.
- a: Aceasta 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? Ultima secțiune este aceeași ca și 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 la următoarele:
-rwxr-
Aceasta este, 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.
chmod o-r todo.txt
De asemenea, le putem combina într-o singură comandă, cum ar fi:
chmod u + x, g-w, o-r todo.txt
Puteți observa 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 numai fișierul (util dacă nu vă deranjează alții să vizualizeze fișierele dvs..
- -rwx-: Proprietarul are permisiuni complete, toate celelalte nu au niciunul (util pentru scripturi personale).
- -rw-rw--: Proprietarul și grupul pot citi și scrie (utile pentru colaborarea cu membrii grupului).
- -rw-r-r-: Proprietarul poate citi și scrie, grupul și alți utilizatori pot citi numai fișierul (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ă câteva alte lucruri pe care le puteți face cu chmod - cum ar fi setuid și setgid - dar ele sunt puțin în profunzime și majoritatea utilizatorilor nu vor avea nevoie să le utilizeze oricum.
Fișierele root sau Super-User și System
În prezent, nu rulați întotdeauna sisteme care au mai mulți utilizatori. De ce să ne îngrijim încă de permisiuni?
Ei bine, Unix și instrumentele sale derivate - 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 administrate de sistem. Ca atare, lucrurile care sunt integrate pentru sistem au nevoie de privilegii de administrare pentru a fi schimbate sau accesate. În acest fel, nu faceți nimic în mod accidental.
În Ubuntu, pentru a face modificări fișierelor de sistem utilizați "sudo" sau "gksudo" pentru a obține echivalentul privilegiilor de administrator. În alte distribuții, treceți la "rădăcină" sau la "super-utilizator", care face în mod efectiv același lucru până când vă deconectați.
Rețineți că, în ambele cazuri, modificarea permisiunilor de fișiere poate duce la nefuncționarea programelor, schimbarea neintenționată a proprietății fișierelor la utilizatorul rădăcină (în locul proprietarului) și la reducerea securității sistemului (acordând mai multe permisiuni). Ca atare, se recomandă să nu schimbați permisiunile pentru fișiere - în special fișierele de sistem - cu excepția cazului în care este necesar sau știți ce faceți.
Sunt disponibile permisiuni de fișiere pentru a oferi un sistem de bază de securitate pentru utilizatori. Învățarea modului în care acestea 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ă dați un indiciu cu privire la situația în care ceva nu merge în proprietatea fișierelor de sistem.
Crezi că poți explica lucrurile mai ușor? Aveți o corecție? Doriți să amintiți despre vremurile vechi? Faceți o pauză și puneți gândurile în comentariile.