Recomandat, 2024

Alegerea Editorului

Înțelegerea permisiunilor Linux și a utilizării chmod

Am făcut un curs pe Linux în ultimele luni și un aspect al Linuxului care mereu ma deranjat a fost modul în care au funcționat permisiunile. De exemplu, când încărc un fișier pe serverul meu web o dată și am primit o eroare, mi sa spus de către gazda mea de web să schimbe permisiunile de fișier la 755.

Nu aveam nici o idee despre ce însemna asta, chiar dacă schimbarea permisiunilor a rezolvat problema. Acum am realizat că permisiunile de la Linux nu sunt atât de complicate, încât trebuie doar să înțelegi sistemul. În acest articol, voi vorbi despre permisiunile Linux la un nivel înalt și vă vom arăta cum să utilizați comanda chmod pentru a modifica permisiunile pentru fișiere și foldere.

Permisiuni și niveluri Linux

În Linux, există în principiu trei permisiuni pe care va trebui în mod normal să le faceți griji: citiți, scrieți și executați. Toate cele trei sunt destul de explicative. Acum, când aceste permisiuni sunt aplicate unui fișier, acestea sunt aplicate în nivele.

Există trei niveluri de permisiuni în Linux: proprietar, grup și altele. Proprietarul este utilizatorul care deține fișierul / dosarul, grupul include alți utilizatori din grupul de fișiere, iar ceilalți reprezintă doar ceilalți utilizatori care nu sunt proprietari sau în grup.

Citirea, scrierea și executarea sunt reprezentate fie ca caractere simbolice, fie ca numere octale. De exemplu, dacă faceți un ls -l într-un director cu unele fișiere, veți vedea reprezentarea simbolică a permisiunilor.

Permisiunile sunt scrise astfel: primul bit este fie o linie, fie litera d. Dash înseamnă că este un fișier și d reprezintă directorul. Rețineți că primul bit poate fi, de asemenea, l dacă numele fișierului este un link. Apoi, există trei grupuri de trei biți. Primul bit din fiecare grup este citit, cel de-al doilea bit este pentru scriere, iar cel de-al treilea bit este executat. Primii trei biți sunt pentru proprietar, alți trei biți sunt pentru grup și al treilea trei biți sunt pentru alții. Iată o explicație mai vizibilă.

Dacă vedeți o bordură în locul unei litere, înseamnă că proprietarul, grupul sau toți ceilalți utilizatori nu au această permisiune. În exemplul de mai sus, proprietarul, grupul și oricine altcineva a citit scrierea și executarea permisiunilor.

Dacă vă uitați la ieșirea din comanda ls -l, veți observa că fișierul de text practic are următoarele permisiuni:

 -rw-rw-rw- 

Aceasta înseamnă că toată lumea are permisiuni de citire / scriere pentru fișier. Iată un alt exemplu:

 drwxr - r-- 

Privind la primul bit, putem vedea că permisiunile sunt pentru un director. Proprietarul are permisiuni de citire / scriere / executare, dar grupul și alți utilizatori au permisiunea de citire.

Reprezentarea numărului octal

Deci așa sunt afișate permisiunile în Linux folosind simboluri. Cea de-a doua modalitate de a reprezenta aceleași permisiuni este prin utilizarea numerelor octale. Când vom folosi ulterior comanda chmod, veți vedea că puteți modifica permisiunile utilizând fie simboluri, fie cifre octale.

Deci, cum reprezintă Linux citirea, scrierea și executarea folosind numere octale? Practic, el atribuie un număr fiecărui permis, după cum se arată mai jos.

Permisiunea de citire este reprezentată de 4, scrie cu 2 și execută cu 1. Tot ce trebuie să faceți este să le adăugați pentru a obține permisiunea octală. De exemplu, să luăm exemplul de mai sus în cazul în care toată lumea are toate permisiunile:

 -rwxrwxrwx 

Proprietarul are rwx, deci vom adăuga 4 + 2 + 1 pentru a obține o valoare de 7. Facem același lucru pentru grup și același lucru pentru alții. Valoarea octală finală este 777. Să aruncăm o privire la exemplul în care am dat doar permisiuni de citire / scriere:

 -rw-rw-rw- 

Primul număr octal va fi de 4 + 2, deoarece adăugăm citirea și scrierea. Al doilea va fi același cu cel de-al treilea număr octal. Aici avem o valoare octală finală de 666.

Deci, acum să încercăm altfel. Spuneți că vrem să știm ce permisiuni reprezintă 755 ? Ei bine, este destul de ușor să dai seama dacă o descompuneți prin numere individuale. Primul număr este 7, pe care îl putem obține doar prin adăugarea a 4 + 2 + 1, adică proprietarul are permisiunea de a citi / scrie / executa. Cinci pot fi obtinute doar prin adaugarea a 4 + 1, adica grupul si alti utilizatori au citit si executa permisiuni.

Sperăm că este o explicație bună pentru modul în care să se reprezinte permisiunile în Linux folosind numere octale. E destul de clar în general.

Utilizând chmod pentru a modifica permisiunile

Acum, când înțelegem cum să citim permisiunile, să vorbim despre modul în care putem să le schimbăm. Cel mai simplu utilitar folosit în acest scop este comanda chmod. Iată cum funcționează. Cea mai bună modalitate de a explica comanda este să treceți printr-un exemplu.

Să începem cu permisiunile despre care am vorbit mai sus, și anume:

 -rw-rw-rw- 

Dacă vrem să adăugăm permisiunea de executare pentru proprietar, grup și altele, am putea merge despre el în două moduri. Am putea folosi metoda simbolului sau metoda octal. Pentru metoda simbolului, vom face următoarele, după cum se arată mai jos:

Comanda exactă este

 numele fișierului chmod a + x 

Sintaxa este după cum urmează: litera sau literele care reprezintă proprietarul ( u ), grupul ( g ), altul ( o ) sau toate ( a ), urmate de + pentru adăugarea permisiunilor sau - pentru îndepărtarea permisiunilor și apoi litera permisiunea ( r pentru citire, w pentru scriere și x pentru execuție).

În exemplul de mai sus, am adăugat permisiunea de executare pentru toți utilizatorii. Rezultatul, după cum puteți vedea în captura de ecran de mai sus, este un x pentru proprietar, grup și altele. Acum, să spunem că am vrut să elimină permisiunile de scriere și de executare numai pentru grup și pentru alți utilizatori.

După cum puteți vedea aici, am folosit următoarea comandă pentru a realiza acest lucru:

 numele de fișier chmod go-wx 

Deoarece vreau să modific permisiunile pentru grup și altele, folosesc litera g și litera o . Vreau să șterg permisiunile, așa că folosesc semnul. În cele din urmă, vreau să elimină permisiunile de scriere și executare, deci folosesc w și x . Iată o mică masă la îndemână pentru utilizarea simbolurilor:

Deci, asta e tot ce este de a folosi metoda simbolului. Acum hai să vorbim despre metoda octalică, pe care o găsesc mult mai ușoară. Octal este frumos pentru că puteți adăuga sau elimina toate permisiunile dintr-o dată.

Dacă începem cu următoarele permisiuni pe un fișier, să vedem cum le putem schimba folosind metoda octal:

 -rw-rw-rw- 

Deasupra, puteți vedea că am folosit următoarea comandă:

 chmod 744 nume fișier 

Acest lucru spune, în principiu, că proprietarul primește permisiunea de citire / scriere / executare, iar grupul și ceilalți primesc doar permisiunea de citire. După cum puteți vedea, este ușor să adăugați sau să eliminați permisiunile într-o singură comandă simplă. Să continuăm și să spunem că vreau să schimb permisiunile din nou.

Acum am folosit următoarea comandă, din nou una foarte simplă:

 chmod 640 nume fișier 

Aici am dat permisiunea proprietarului de citire / scriere, permisiunea de citire a grupului numai și celălalt grup fără permisiuni. Utilizați un zero pentru a nu denumi nici o permisiune. Destul de simplu, nu?

În concluzie, aceasta este o prezentare foarte simplă a permisiunilor pentru Linux și poate fi mult mai complicată decât aceasta, dar pentru începători este un loc bun pentru a începe. Voi publica mai multe articole despre permisiuni mai avansate în viitor. Dacă aveți întrebări, nu ezitați să comentați. Bucurați-vă!

Top