If-Koubou

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

Cum funcționează permisiunile de fișiere Linux? (Cum să)

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 MP3 Amazon, 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? 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 îi aparține și numai acel utilizator poate să-și modifice permisiunile de acces.

În lumea Linux, permisiunile sunt împărțite în trei categorii: citiți, scrieți și executați. Accesul "Citire" permite vizualizarea conținutului unui fișier, accesul "scrie" 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ă acceseze directoarele și fișierele din dosarul dvs. de acasă, dar nu pe nimeni în afara grupului dvs. Veți dori, probabil, să limitați accesul la "scriere" doar pentru dvs., cu excepția cazului în care lucrați la un anumit proiect comun. De asemenea, puteți crea 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 accesați "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. Se pare ca aceasta:

-rwxrw-r-

r înseamnă "citiți"; w înseamnă "scrie" și " X înseamnă directorul "execute". Începutul se va face cu un "d" în loc de "-". Veți observa, de asemenea, că există 10 spații care dețin valoare. Puteți ignora primul, iar 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ă examinăm forma de bază a comenzii chmod.

chmod [clasa] [operator] [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 doar. 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 vizualizarea fișierelor.
  • -rwx-: Proprietarul are permisiuni complete, toate celelalte nu au nici unul (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, grupează ș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 nici unul (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 mai facem griji cu privire la 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 sistemul însuși. Ca atare, lucrurile care sunt integrate pentru sistem au nevoie de privilegii admin pentru a fi schimbate sau accesate. În acest fel, nu faceți nimic în mod accidental.

În Ubuntu, pentru a efectua modificări în fișierele de sistem pe care le utilizați, "șudo" sau "gksudo" pentru a obține echivalentul privilegiilor de administrator. În alte distribuții, treceți la "roota" sau "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 către utilizatorul rădăcină (în loc de proprietar) și deteriorarea sistemului prin acordarea mai multor permisiuni. Ca atare, este recomandat 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 securitate de bază pentru utilizatori. Învățarea modului de funcționare a acestora 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? Vreți să amintiți despre vremurile vechi? Luați o pauză și puneți gândurile în comentariile.