Android

Comanda Umask în linux

9-Commande Linux umask #darija

9-Commande Linux umask #darija

Cuprins:

Anonim

Pe sistemele de operare Linux și Unix, toate fișierele noi sunt create cu un set implicit de permisiuni. Utilitarul umask vă permite să vizualizați sau să setați masca de creare a modului fișier, care determină biții de permisiuni pentru fișiere sau directoare create recent.

Este utilizat de mkdir, touch, tee și alte comenzi care creează fișiere și directoare noi.

Permisiuni Linux

Înainte de a merge mai departe, să explicăm în scurt timp modelul de permisiuni Linux.

În Linux, fiecare fișier este asociat cu un proprietar și un grup și este atribuit cu drepturi de acces pentru permis pentru trei clase diferite de utilizatori:

  • proprietarul fișierului.membrii grupului.e oricare altcineva.

Există trei tipuri de permisiuni care se aplică pentru fiecare clasă:

  • permisiunea de citire.scrierea permisiunii.executarea permisiunii.

Acest concept vă permite să specificați ce utilizatori au voie să citească fișierul, să scrie în fișier sau să execute fișierul.

Pentru a vizualiza permisiunile de fișier, utilizați comanda ls :

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

Primul caracter reprezintă tipul de fișier care poate fi fișier regulat ( - ), director ( d ), legătură simbolică ( l ) sau orice alt tip special de fișier.

Următoarele nouă caractere reprezintă permisiunile, trei seturi de trei caractere fiecare. Primele seturi arată permisiunile de proprietar, cel de-al doilea permis de grup, iar ultimul set arată permisiunile tuturor celorlalți.

Caracterul r cu o valoare octală de 4 înseamnă citit, w cu o valoare octală de 2 pentru scriere, x cu o valoare octală de 1 pentru executarea permisiunii și ( - ) cu valoarea octală de 0 fără permisiuni.

Există, de asemenea, alte trei tipuri de permisiuni de fișiere speciale: setuid , setgid și Sticky Bit .

În exemplul de mai sus ( rwxr-xr-x ) înseamnă că proprietarul a citit, scris și executat permisiunile ( rwx ), grupul și alții au citit și executat permisiuni.

Dacă reprezentăm permisiunile fișierului folosind o notare numerică, vom ajunge la numărul 755 :

  • Proprietar: rwx = 4+2+1 = 7 Grupa: rx = 4+0+1 = 5 Altele: rx = 4+0+1 = 5

Când sunt reprezentate în notație numerică, permisiunile pot avea trei sau patru cifre octale (0-7). Prima cifră reprezintă permisiunile speciale, iar dacă este omisă, înseamnă că nu sunt setate permisiuni speciale în fișier. În cazul nostru 755 este la fel ca 0755 . Prima cifră poate fi o combinație de 4 pentru setuid , 2 pentru setgid și 1 pentru Sticky Bit .

Permisiunile de fișiere pot fi modificate folosind comanda chmod și proprietatea folosind comanda chown .

Înțelegerea umask-ului

În mod implicit, pe sistemele Linux, permisiunile de creare implicite sunt 666 pentru fișiere, ceea ce oferă permisiunea de citire și scriere utilizatorului, grupului și altora și la 777 pentru directoare, ceea ce înseamnă permisiunea de citire, scriere și execuție pentru utilizator, grup și alții. Linux nu permite crearea unui fișier cu permisiunile de execuție.

Permisiunile de creare implicite pot fi modificate folosind utilitarul de umask .

umask afectează doar mediul actual shell. La majoritatea distribuțiilor Linux, valoarea implicită a întregului sistem umask este setată în pam_umask.so sau /etc/profile .

Pentru a vizualiza valoarea de mască curentă, pur și simplu tastați umask fără niciun argument:

umask

Rezultatul va include

022

Valoarea umask conține biți de permisiune care NU vor fi setate pe fișierele și directoarele nou create.

Așa cum am menționat deja, permisiunile de creare implicite pentru fișiere sunt 666 și pentru directoare 777 . Pentru a calcula biții de permisiune din noile fișiere scade valoarea de mască umasă din valoarea implicită.

De exemplu, pentru a calcula modul în care uname 022 va afecta fișierele și directoarele nou create, utilizați:

  • Fișiere: 666 - 022 = 644 . Proprietarul poate citi și modifica fișierele. Grupul și alții pot citi doar fișierele.Directorii: 777 - 022 = 755 .Proprietarul poate intra în director și lista poate citi, modifica, crea sau șterge fișierele din director. Grupul și alții pot intra în director și lista și citiți fișierele.

De asemenea, puteți afișa valoarea de mască în notație simbolică folosind opțiunea -S :

umask -S

u=rwx, g=rx, o=rx

Spre deosebire de notația numerică, valoarea de notare simbolică conține biți de permisiune care vor fi setate pe fișierele și directoarele nou create.

Setarea valorii măștii

Masca de creare a fișierelor poate fi setată folosind notație octală sau simbolică. Pentru a face modificările permanente, setați noua valoare umask într-un fișier de configurare global, cum ar fi fișierul /etc/profile care va afecta toți utilizatorii sau fișierele de configurare ale unui utilizator, cum ar fi ~/.profile , ~/.bashrc sau ~/.zshrc care va afecta numai utilizatorul. Fișierele utilizator au prioritate față de fișierele globale.

Înainte de a face modificări la valoarea umask asigurați-vă că noua valoare nu prezintă un risc potențial de securitate. Valorile mai puțin restrictive decât 022 trebuie utilizate cu mare precauție. De exemplu, umask 000 înseamnă că oricine va fi citit, scris și executat permisiunea pentru toate fișierele recent create.

Să zicem că dorim să stabilim permisiuni mai restrictive pentru fișierele și directoarele recent create, astfel încât alții să nu poată cd la directoare și să citească fișiere. Permisiunile dorite sunt 750 pentru directoare și 640 pentru fișiere.

Pentru a calcula valoarea umask permisiunile dorite din cele implicite:

Valoare mască: 777-750 = 027

Valoarea dorită de umask reprezentată în notația numerică este 027 .

Pentru a seta permanent noul sistem de valori, deschideți fișierul de /etc/profile cu editorul de text:

sudo nano /etc/profile

și modificați sau adăugați următoarea linie la începutul fișierului:

/ Etc / profile

umask 027

Pentru ca modificările să aibă efect, executați următoarea comandă source sau deconectare și conectați-vă:

source /etc/profile

Pentru a verifica noile setări, vom crea un nou fișier și director folosind mkdir și touch :

mkdir newdir touch newfile mkdir newdir

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

Un alt mod de a seta masca de creare de fișiere este folosind notația simbolică. De exemplu, umask u=rwx, g=rx, o= este la fel ca umask 027 .

Concluzie

În acest ghid, am explicat permisiunile Linux și cum să utilizăm comanda umask pentru a seta biții de permisiuni pentru fișiere sau directoare create recent.

Pentru mai multe informații de tip man umask în terminalul dvs.

terminalul de mască