Permisiuni de fișiere Linux

Permisiuni de fișiere Linux - 1.0

Elementele de bază ale proprietății fișierelor și permisiunile pe Linux. Aflați cum să înțelegeți care sunt proprietarii unui fișier sau director, cum funcționează permisiunile fișierului și cum le puteți vizualiza și aflați cum să setați singur permisiunile de bază pentru fișiere.

Permisiuni și proprietate - de ce? >

Dacă nu puteți accesa unele dintre fișierele propriului dvs. sistem Linux, este de obicei din cauza permisiunilor de acces la fișiere neconfigurate. Dacă sunteți singurul utilizator al cutiei Linux, este posibil să vă întrebați ce rost are să aveți toate aceste permisiuni (sau lipsa acestora) care vă restricționează accesul la propriul dvs. sistem de operare penguin. Cu toate acestea, înainte de a vă scoate părul, trebuie să aveți în vedere că Linux este conceput pentru a fi un mediu multi-utilizator. Într-un mediu cu mai mulți utilizatori, este esențial să aveți un sistem sigur pentru a decide ce fișiere vă aparțin și cine se poate lăuda cu ele.

Chiar dacă sunteți singurul utilizator pe un sistem obișnuit de desktop, permisiunile de fișiere vă ajută să vă păstrați fișierele importante în siguranță, atât din exterior, cât și din propriile greșeli. 🙂

 

Înțelegerea proprietății fișierelor >

Fiecare fișier din sistemul dvs. Linux, inclusiv directoare, este deținut de un anumit utilizator și grup. Prin urmare, permisiunile fișierelor sunt definite separat pentru utilizatori, grupuri și altele.

Ghid de utilizare: Numele de utilizator al persoanei care deține fișierul. În mod implicit, utilizatorul care creează fișierul va deveni proprietarul acestuia.

Grupa: Grupul de utilizatori care deține fișierul. Toți utilizatorii care aparțin grupului care deține fișierul vor avea aceleași permisiuni de acces la fișier. Acest lucru este util dacă, de exemplu, aveți un proiect care necesită o grămadă de utilizatori diferiți pentru a putea accesa anumite fișiere, în timp ce alții nu. În acest caz, veți adăuga toți utilizatorii în același grup, vă veți asigura că fișierele necesare sunt deținute de acel grup și veți seta permisiunile de grup ale fișierului în consecință.

Alte: Un utilizator care nu este proprietarul fișierului și nu aparține aceluiași grup. Cu alte cuvinte, dacă setați o permisiune pentru categoria „altele”, aceasta va afecta în mod implicit pe toți ceilalți. Din acest motiv, oamenii vorbesc adesea despre setarea bitului de permisiune „lume” atunci când înseamnă setarea permisiunilor pentru „altul”.

 

Înțelegerea permisiunilor fișierelor >

Există trei tipuri de permisiuni de acces pe Linux: citire, scriere și executare. Aceste permisiuni sunt definite separat pentru proprietarul fișierului, grupul și toți ceilalți utilizatori.

Citiți permisiunea. Pe un fișier obișnuit, bitul de permisiune pentru citire înseamnă că fișierul poate fi deschis și citit. Pe un director, permisiunea de citire înseamnă că puteți să listați conținutul directorului.

Scrieți permisiunea. Într-un fișier obișnuit, aceasta înseamnă că puteți modifica fișierul, adică să scrieți date noi în fișier. În cazul unui director, permisiunea de scriere înseamnă că puteți adăuga, elimina și redenumi fișiere din director. Acest lucru înseamnă că, dacă un fișier are bitul de permisiune de scriere, aveți permisiunea de a modifica conținutul fișierului, dar aveți permisiunea de a redenumi sau șterge fișierul numai dacă permisiunile fișierului director vă permit să faceți acest lucru.

Executați permisiunea. În cazul unui fișier obișnuit, aceasta înseamnă că puteți executa fișierul ca program sau ca script shell. Pe un director, permisiunea de executare (numită și „bitul de căutare”) vă permite să accesați fișiere din director și să îl introduceți, cu cd comandă, de exemplu. Cu toate acestea, rețineți că, deși bitul de executare vă permite să intrați în director, nu aveți voie să listați conținutul acestuia, cu excepția cazului în care aveți și permisiunile de citire pentru acel director.

 

Cum se vizualizează permisiunile fișierelor >

Puteți vizualiza permisiunile de acces ale unui fișier făcând o listă lungă de directoare cu ls -l comanda. Aceasta ar putea fi o listă lungă de directoare:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Ce înseamnă outputul ls -l Rău? Prima coloană, cea care arată ca o grămadă de mumbo jumbo, arată tipul de fișier și permisiunile. Cea de-a doua coloană arată numărul de legături (intrări de director care se referă la fișier), a treia arată proprietarul fișierului, iar a patra arată grupul din care aparține fișierul. Celelalte coloane arată dimensiunea fișierului în octeți, data și ora ultimei modificări și numele fișierului.

Prima coloană, cea care prezintă permisiunile fișierului și arată ca jumbo jumbo, este organizată în patru grupuri separate, deși cu siguranță nu pare foarte organizată.

Primul grup este format dintr-un singur caracter și arată tipul fișierului. De exemplu, d înseamnă un director și - înseamnă un fișier normal, deci dacă aruncați o privire la exemplul nostru de ieșire, veți observa dir este un director, în timp ce file și otherfile sunt fișiere obișnuite.

Primul caracter poate fi oricare dintre acestea:

d = director
- = fișierul obișnuit
l = legătura simbolică
s = Socket de domeniu Unix
p = conductă numită
c = fișierul dispozitivului de caractere
b = blocarea fișierului dispozitivului

Următoarele nouă caractere arată permisiunile fișierului, împărțite în trei grupuri, fiecare format din trei caractere. Primul grup de trei caractere arată permisiunile de citire, scriere și executare pentru utilizator, proprietarul dosarului. Următorul grup prezintă permisiunile de citire, scriere și executare pentru grup a dosarului. În mod similar, ultimul grup de trei caractere prezintă permisiunile pentru alte, toti ceilalti. În fiecare grup, primul caracter înseamnă permisiunea de citire, a doua permisiune de scriere și al treilea permis de execuție.

Caracterele sunt destul de ușor de reținut.

r = permisiunea de citire
w = permisiune de scriere
x = executa permisiunea
- = nici o permisiune

Ce înseamnă asta în practică? Să avem un exemplu. Vă amintiți listarea imaginară a directorului pe care am făcut-o la început? Rezultatul arăta astfel:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

După cum am observat deja, dir este un director, deoarece prima coloană începe cu o d. Proprietarul acestui director este utilizator nana și proprietarul grupului este writers. Primele trei personaje, rwx, indicați proprietarul directorului, nana în acest caz, are acces complet la director. Utilizatorul nana este capabil să acceseze, să vizualizeze și să modifice fișierele din acel director. Următoarele trei personaje, r-x, indică faptul că toți utilizatorii aparținând grupului writers au citit și executat permisiuni pentru director. Se pot schimba în director, pot executa fișiere și pot vizualiza conținutul acestuia. Cu toate acestea, deoarece nu au permisiuni de scriere, nu pot face modificări în conținutul directorului. În cele din urmă, ultimele trei personaje, r-x, indică faptul că toți utilizatorii care nu sunt nana sau nu aparține unui grup writers, au citit și executa permisiuni în director.

Cât despre file? Deoarece prima coloană începe cu a -, fișierul este un fișier obișnuit, deținut de utilizator nana și grup writers, la fel ca directorul din exemplul nostru. Primele trei personaje, rw-, indicați că proprietarul a citit și a scris accesul la fișier. Potrivit celor trei personaje următoare, r--, utilizatorii aparținând grupului writers poate vizualiza fișierul, dar nu îl poate modifica sau executa. Ultimii trei personaje, ---, indică faptul că nimeni altcineva nu are acces la fișier.

În mod similar, puteți vedea otherfile este un fișier obișnuit, iar proprietarul său are acces deplin la acesta, în timp ce toți ceilalți pot citi și executa fișierul, dar nu îl pot modifica.

 

Cum să setați permisiunile de fișiere - modul simbolic >

Puteți seta permisiunile fișierelor cu chmod comanda. Atât utilizatorul root, cât și proprietarul fișierului pot seta permisiuni de fișier. chmod are două moduri, simbolice și numerice.

Modul simbolic este destul de ușor de reținut. Mai întâi, decideți dacă setați permisiuni pentru utilizator (u), grup (g), alții (o) sau pentru toate cele trei (a). Apoi, fie adăugați o permisiune (+), o eliminați (-) sau ștergeți permisiunile anterioare și adăugați una nouă (=). Apoi, decideți dacă setați permisiunea de citire (r), permisiunea de scriere (w) sau executați permisiunea (x). În sfârșit, veți spune chmod permisiunile ce fișier doriți să modificați.

Să avem câteva exemple. Să presupunem că avem un fișier obișnuit numit testfile, iar fișierul are permisiuni de acces deplin pentru toate grupurile (se va afișa o listă lungă de directoare) -rwxrwxrwx ca permisiuni ale fișierului).

Ștergeți toate permisiunile, dar adăugați permisiunea de citire pentru toată lumea:
chmod a=r testfile
După comandă, permisiunile fișierului ar fi -r--r--r--

Adăugați permisiuni de execuție pentru grup:
chmod g+x testfile
Acum, permisiunile fișierului ar fi -r--r-xr--

Adăugați atât permisiuni de scriere, cât și de executare pentru proprietarul fișierului. Rețineți cum puteți seta mai multe permisiuni în același timp:
chmod u+wx testfile
După aceasta, vor fi permise fișierele -rwxr-xr--

Eliminați permisiunea de executare atât de la proprietarul fișierului, cât și de la grup. Rețineți, din nou, cum le puteți seta pe amândouă simultan:
chmod ug-x testfile
Acum sunt permisiunile -rw-r--r--

Ca rezumat, aruncați o privire la această referință rapidă pentru setarea permisiunilor de fișiere în modul simbolic:

Ce utilizator?
u proprietar / utilizator
g grup
o alte
a toate
Ce să fac?
+ adăugați această permisiune
- eliminați această permisiune
= setați exact această permisiune
Ce permisiuni?
r citit
w scrie
x a executa

 

Cum să setați permisiunile de fișiere - modul numeric >

Celălalt mod în care chmod poate fi folosit este modul numeric. În modul numeric, permisiunile fișierului nu sunt reprezentate de caractere. În schimb, acestea sunt reprezentate printr-un număr octal din trei cifre.

= citește (r)
2 = scrie (w)
1 = executa (x)
0 = fără permisiune (-)

Pentru a obține biții de permisiune pe care îi doriți, adăugați numerele corespunzător. De exemplu, permisiunile rwx ar fi 4 + 2 + 1 = 7, rx ar fi 4 + 1 = 5 și rw ar fi 4 + 2 = 6. Deoarece setați permisiuni separate pentru proprietar, grup și altele, veți avea nevoie de un număr din trei cifre care să reprezinte permisiunile tuturor acestor grupuri.

Să avem un exemplu.
chmod 755 testfile
Acest lucru ar schimba testfilepermisiunile pentru -rwxr-xr-x. Proprietarul va avea drepturi de citire, scriere și executare completă (7 = 4 + 2 + 1), grupul ar fi citit și executa permisiuni (5 = 4 + 1), iar lumea ar avea permisiunile de citire și executare .

Să avem un alt exemplu:
chmod 640 testfile
În acest caz, testfilepermisiunile ar fi -rw-r-----. Proprietarul ar fi permis permisiunile de citire și scriere (6 = 4 + 2), grupul ar avea numai permisiunile de citire (4), iar ceilalți nu ar avea permisiuni de acces (0).

Modul numeric poate să nu fie la fel de simplu ca modul simbolic, dar cu modul numeric, puteți seta mai rapid și mai eficient permisiunile fișierului. Această referință rapidă pentru setarea permisiunilor de fișiere în modul numeric vă poate ajuta:

Care număr?
0 -
1 -X
2 -W-
3 -wx
4 r–
5 rx
6 rw-
7 rwx