Cum se controlează permisiunile de fișiere și foldere pe serverele Linux

Când avem un server NAS bazat pe Linux, sau direct un sistem de operare precum Debian sau Ubuntu unde am instalat diferite servicii pentru a accesa fișiere și foldere în rețeaua locală de către alți utilizatori, controlați citirea, scrierea și executarea accesului la acestea. fișierele și folderele pe care le partajăm este esențială. Trebuie să avem în vedere că, atunci când partajăm folderele și fișierele noastre prin Samba sau FTP, este posibil ca autentificarea clienților să se facă cu un utilizator fără privilegii, prin urmare, trebuie să organizăm corect utilizatorii și grupurile pentru a furniza permisiunile necesare și nu mai .

De asemenea, trebuie să avem în vedere că sistemele de operare sunt multi-utilizator, am putea accesa simultan cu mai mulți utilizatori înregistrați local în sistemul nostru de operare, prin urmare, este foarte important să efectuăm o revizuire periodică a permisiunilor existente. De multe ori vrem să împiedicăm alți utilizatori ai computerului să modifice fișierele, dar nu știm cum să o realizăm. Cu această ocazie, vă vom învăța cum să atribuiți permisiuni folderelor și fișierelor din Linux.

Controlați permisiunile de fișiere și foldere pe serverele Linux

Pentru a face totul mai clar, vom împărți acest articol în mai multe secțiuni care ne vor permite să înțelegem mai bine despre ce se vorbește în orice moment. Este necesar să clarificăm că tot ceea ce vom explica va fi prin linia de comandă, adică va trebui să scoatem o consolă sau să ne conectăm prin SSH la serverul nostru Linux. Dacă nu sunteți familiarizați cu această componentă Linux, poate că acesta este cel mai bun moment, deoarece nivelul de dificultate despre care vom vorbi este scăzut.

Ce este comanda chmod și la ce servește?

Comanda chmod (modul de schimbare) este destinată să schimbe permisiunile utilizatorului, grupului și a altor fișiere și foldere, putem modifica permisiunile de citire, scriere și executare a tuturor fișierelor și folderelor pe care le dorim, în plus, putem face o modificare recursivă a unui anumit folder, în acest fel, toate fișierele și folderele din interiorul acestuia vor fi, de asemenea, afectate de această modificare. Comanda chmod este disponibilă atât în ​​sistemele de operare Linux, cât și în cele Unix, prin urmare, dacă serverul nostru se bazează pe Unix ca un FreeBSD, putem modifica permisiunile fișierelor și folderelor în același mod în care o facem într-un Debian sau Ubuntu.

Sintaxa pentru utilizarea chmod este după cum urmează:

chmod [modificatori] permisiuni fișier / director

Mai întâi vom executa comanda chmod, apoi vom putea încorpora diferiți modificatori, de exemplu, „-R” pentru a-l face recursiv la toate folderele și fișierele din același folder, apoi va trebui să punem noile permisiuni care vrem să aplicăm și, în cele din urmă, vom pune calea absolută sau relativă a fișierului sau folderului pe care dorim să modificăm permisiunile.

Un detaliu foarte important este că, în unele cazuri, este absolut necesar să rulați chmod cu permisiuni pentru superutilizatori, deoarece doar utilizatorul administrator al sistemului de operare poate modifica permisiunile. Acest lucru poate fi realizat conectându-vă ca root sau utilizând direct comanda populară „sudo” pentru a promova temporar superutilizatorul cu comanda de executat.

Exemple de utilizare a chmod pentru a modifica permisiunile

Primul lucru pe care îl vom face este să creăm un nou folder și fișiere în interiorul acestuia, cu scopul de a practica cu aceste foldere și fișiere și să nu modificați permisiunile implicite ale folderelor care există deja în sistemul dvs. de operare. Din acest motiv, vom face pregătiri pentru ca testele să aibă succes.

Înainte de a începe, toate comenzile pe care urmează să le executați vor fi efectuate cu diferiți utilizatori, pentru a verifica corect permisiunile pe care le vom aplica. Pentru a trece de la un utilizator la altul pe sistemele Linux, trebuie doar să deschideți consola și să executați ” nume de utilizator „, Introducem parola și vom accesa automat terminalul ca și când am fi celălalt utilizator.

Pregătirea sistemului nostru pentru testare

Primul lucru pe care îl vom face este creați un folder în directorul curent al fiecărui utilizator , localizat de obicei în / home / username.

mkdir Carpetathis article

Mai târziu, ne vom muta în acest folder și vom crea un fișier:

cd Carpetathis article

atingeți fișierul de testare

Pentru a termina, vom scrie următoarea comandă pentru a ridica nivelul și a ieși din folderul pe care l-am creat:

cd ..

Cu aceasta, avem sistemul nostru gata să înceapă testarea modificărilor permisiunilor.

Obțineți informații despre fișiere și foldere

Dacă dorim să listăm fișierele existente într-un folder, va trebui să scriem doar următoarea comandă:

ls

Cu aceasta obținem doar numele fișierelor sau folderelor unde suntem pe cale. Pentru a obține mult mai multe detalii, va trebui să scriem următoarele:

ls -l

Am executat această comandă pe serverul nostru, aici puteți vedea cum arată ieșirea:

Această comandă oferă următoarele informații (în ordine de la stânga la dreapta):

  • Tipul de fișier (fișierul arată „-” și directorul indică „d”).
  • Citiți, scrieți și executați permisiuni, atât pentru utilizator, grup, cât și pentru alții.
  • Utilizator proprietar.
  • Grup care deține fișierul.
  • Mărimea
  • Data ultimei modificări.
  • Nume si Prenume

Odată ce am creat folderul și fișierele, precum și am văzut ieșirea comenzii «ls -l», vom interpreta permisiunile pe care le au fișierele sau folderele.

Interpretează permisiunile pe care le are un fișier sau folder

Ați văzut anterior că diferitele fișiere au aceste permisiuni:

drwxr-xr-x 3 bron bron 4096 may 6 13:19 Descargas

În acest șir oferit vom vedea că, pentru fiecare fișier sau folder, există în primul rând o serie de litere. Acestea sunt permisiunile pe care le are fișierul și sunt citite după cum urmează:

otorgar-permisos-fichero-o-carpeta-linux

În exemplul anterior, avem permisiunile „drwxr-xr-x”, aceasta înseamnă următoarele:

  • d: director
  • rwx: citește, scrie și execută permisiuni pentru utilizatorul care deține directorul.
  • rx: citește și execută permisiuni pentru grupul care deține directorul.
  • rx: citește și execută permisiuni pentru alte persoane din director.

Dacă vrem doar ca utilizatorul proprietar să poată citi, scrie și executa un anumit fișier, ar trebui să vedem următoarele:

-rwx------

Adică, putem acorda permisiuni următoarelor roluri:

  • Utilizator proprietar.
  • Grupul căruia îi aparține proprietarul
  • Restul utilizatorilor echipei.

Cum se modifică permisiunile de fișiere și dosare

Comanda pe care trebuie să o folosim pentru a realiza această sarcină este chmod, acesta va fi instrumentul cu care putem adăuga sau elimina permisiuni, atât într-un fișier, cât și într-un folder existent în sistemul de fișiere al sistemului nostru de operare. Pentru a face această configurație cu chmod, o putem face în două moduri diferite, folosind litere care sunt mai „umane” dar mai lungi, precum și cifre în format „octal”, care este mult mai rapid. Această ultimă formă este preferata noastră datorită vitezei sale, deși este posibil ca la început să vă placă mai mult literele, deoarece este mult mai bine înțeleasă.

Scrisori

Dacă vom folosi litere pentru a adăuga sau a elimina permisiunile dintr-un folder sau fișier, trebuie să luăm în considerare rolurile, simbolurile și permisiunile.

Există trei tipuri de roluri:

  • u: utilizator
  • g: grup
  • sau: altele
  • a: toate (toate), dacă trebuie să aplicați aceeași permisiune utilizatorului, grupurilor și altora, utilizați „a” pentru a economisi timp.

Două tipuri de simboluri:

  • +: adăugați permisiuni
  • -: eliminați permisiunile
  • =: specifică seturile de permisiuni.

Trei tipuri de permise:

  • r: citire
  • w: scris
  • x: executare

În continuare, vă oferim o serie de exemple, astfel încât să puteți vedea despre ce vorbim:

Acordați permisiuni complete de citire, scriere și executare tuturor rolurilor, atât utilizatorului, grupului, cât și altora:

chmod ugo+rwx archivoDePrueba

Eliminați permisiunile de citire, scriere și executare de la alți utilizatori:

chmod o-rwx archivoDePrueba

În cele din urmă, totul constă în combinarea rolurilor, simbolurilor și permisiunilor în funcție de nevoia pe care o avem.

Bazat pe octal folosind numere

chmod comanda este, de asemenea, compatibilă cu o altă nomenclatură pe care o vom învăța și care se bazează pe octal.

Imaginați-vă că permisiunile proprietarului (rwx) sunt identificate cu 0 și 1. Adică, dacă, de exemplu, dorim să acordăm numai permisiuni de citire și scriere (și nu executăm permisiuni) ar fi: 110. Dacă dorim doar permisiunea de citire, ar fi fi: 100.

Prin urmare, luând în considerare toate posibilitățile existente, obținem următoarele valori:

  • 0: 0
  • 0: 0
  • 0: 1
  • 0: 1
  • 1: 0
  • 1: 0
  • 1: 1
  • 1: 1

Adică, acest lucru poate fi extrapolat atât utilizatorului, grupului, cât și celorlalți.

Formatul comenzii ar fi următorul:

chmod xxx archivoDePrueba

În cazul în care x-urile vor fi schimbate într-un număr în funcție de permisiunile atribuite.

De exemplu, dacă dorim să îi oferim proprietarului permisiuni complete și să lăsăm celelalte două roluri (grup și altele) fără nicio permisiune, comanda ar fi:

chmod 700 archivoDePrueba

Dacă dorim să acordăm permisiuni de citire și scriere tuturor rolurilor atunci va fi:

chmod 666 archivoDePrueba

Cu aceste două moduri simple putem seta permisiunile de fișiere și foldere pe computerul nostru Linux. În plus, vom avea comanda ls -l la îndemână pentru a obține informații în timp real despre fișierele și folderele de pe sistem. Vă recomandăm să vizitați manualul oficial chmod pentru Linux, pentru aceasta, vom executa următoarele pe consolă:

man chmod

De asemenea, vă recomandăm să investigați comenzile getfacl și setfacl pentru a configura liste de control al accesului mai avansate în Linux și nu numai să folosiți utilizatori, grupuri și alții, acest lucru ne va permite o mai mare granularitate, deși este în mod clar mult mai avansat decât popularul chmod. În general, dacă faceți o organizare bună a utilizatorilor și a grupurilor, nu ar trebui să utilizați aceste liste de control al accesului.