9-Commande Linux umask #darija
Cuprins:
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 = 7Grupa:rx=4+0+1 = 5Altele: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.
Utilizați linia de comandă cu comandă
Integrați linia de comandă, interfața grafică și o limbă puternică cu pachetul de instrumente Take Command. > Nu-ți place când vânezi un program pe care trebuie să-l faci, să-l găsești, și apoi să descoperi că face mai mult? Am găsit Command Command (100 $, încercare gratuită de 30 de zile) după ce am fost frustrat de linia de comandă necorespunzătoare din Windows. Am descoperit că mi-a dat ce vroiam și multe lucruri pe care nu știam că le-am vrut - dar acum cu siguranță o fac.
Comanda Chmod în linux (fișiere permisiuni)
În Linux, accesul la fișiere este gestionat prin permisiunile, atributele și proprietatea. Acest tutorial acoperă modul de utilizare a comenzii chmod pentru a modifica permisiunile de acces ale fișierelor și directoarelor.
Comanda Chgrp în linux (schimbare grup)
În Linux, fiecare fișier este asociat cu un proprietar și un grup și are permisiuni care determină utilizatorii care pot citi, scrie sau executa fișierul. Comanda chgrpc modifică proprietatea grupului de fișiere date.







