În calitate de utilizator începător Linux, aflați despre permisiunile și proprietatea asociate fișierului și directoarelor. Sistemele de operare asemănătoare Linux/Unix vă permit să setați o combinație de permisiuni de nouă biți pentru a preveni accesul inutil la fișiere/directoare pe alți utilizatori. Asemănătoare cu acestea sunt permisiunile speciale pentru fișierele executabile cunoscute ca set UID, set GID și sticky bits.

Înțelegerea permisiunilor speciale poate fi puțin copleșitoare pentru aspiranții administratori Linux. Aici veți afla câteva detalii despre permisiunile obișnuite ale fișierelor și veți explica cum diferă acestea de permisiunile speciale. De asemenea, demonstrăm funcționalitatea SetID, GetID și sticky bits cu exemple pentru o înțelegere cuprinzătoare.

Permisiuni obișnuite pentru fișiere Linux

Linux folosește comanda chmod a atribui/modifica citirea (r=4), scrie (w=2), și executați (x=1) permisiuni pentru fișiere și foldere. Adică, cei nouă biți menționați mai sus se aplică celor trei categorii principale de grupuri de permisiuni. Primele trei sunt pentru utilizatorul care deține fișierul, al doilea set este pentru grupul atribuit fișierului/directorului, iar ultimele trei reprezintă toți ceilalți utilizatori.

instagram viewer

De exemplu, un fișier obișnuit va apărea ca -rwxrwxrwx pentru toate tipurile de permisiuni pentru toate categoriile de utilizatori. În timp ce - în locul literelor reprezintă absența acelei permisiuni. Acum chmod comanda folosește cifre și litere pentru a schimba permisiunile după cum urmează:

fișier sudo chmod 755 #pentru rwxr-xr-x 
fișier sudo chmod 644 #pentru rw-r--r-- 
sudo chmod a-w fișier #pentru r-xr-xr-x 
sudo chmod a+x file #for --x--x--x

Permisiuni speciale pentru fișiere Linux

The setuid bit reprezintă permisiunea asupra unui fișier executabil care poate fi rulat de alți utilizatori cu autorizația proprietarului. De exemplu, când utilizatorul max rulează comanda vi ca utilizator Ioan, veți avea permisiunile de citire/scriere ale Ioan.

Pentru a identifica fișierele cu setuid, utilizați ls comanda si cauta s bit în locul bitului executabil X, după cum urmează.

Setați bitul UID

The setuid bit reprezintă permisiunea asupra unui fișier executabil care poate fi rulat de alți utilizatori cu autorizația proprietarului. De exemplu, când utilizatorul max rulează comanda vi ca rădăcină, el va avea permisiunile de citire/scriere ale rădăcină. Pentru a identifica fișierele cu setuid, utilizați ls comanda si cauta s bit în locul bitului de execuție X, după cum urmează:

ls -la /etc/passwd 
-rwsr-xr-x 1 root root 88464 Dec 14 12:46 passwd

Alte exemple sunt:

ls -la /bin/gpasswd
-rwsr-xr-x 1 rădăcină rădăcină 88464 14 iulie 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 rădăcină rădăcină 67816 21 iulie 2020 su
ls -la /newgrp
-rwsr-xr-x 1 rădăcină rădăcină 44784 14 iulie 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 root root 166056 19 ianuarie 2021 sudo

Pentru a seta bitul setuid pentru fișierele executabile, utilizați comanda chmod după cum urmează:

chmod u+s /etc/passwd

Pentru a elimina permisiunea de a executa fișierele de la utilizatori sau proprietari non-root:

chmod u-s /etc/passwd

Setați bitul GID

După cum sa discutat, bitul set uid controlează accesul la fișiere pentru alți utilizatori, în timp ce bitul setgid (GID) creează directoare colaborative. Aceasta înseamnă că orice fișier creat în acel director este accesibil grupului directorului. Prin urmare, permite tuturor membrilor grupului să ruleze fișiere executabile fără privilegiile proprietarului și îi protejează de alți utilizatori.

Urmați acești pași pentru a crea un director colaborativ în sistemul dvs. Linux:

Creați un grup folosind groupadd comandă cu ID de grup 415 pentru colaborare:

groupadd -g 415 admins

Utilizați comanda usermod pentru a adăuga Ioanla grup pentru acces/execuție fișier.

usermod -aG admins john

Folosește mkdir comandă pentru a crea un director:

mkdir /tmp/collaborative_dir

Folosește chgrp comandă pentru a atribui directorul la administratori grup:

administratorii chgrp /tmp/collaborative_dir

Folosește chmod comandă pentru a schimba permisiunea de director la 2775. Cei 2 biți activează setul gid, 7 pentru a atribui rwx complet utilizatorului și grupului, în timp ce 5 (r-w) pentru alții.

chmod 2775 /tmp/collaborative_dir

În cele din urmă, schimbați contul de utilizator în Ioan și creați un fișier în directorul de colaborare pentru a verifica permisiunile fișierelor.

su - john
atingeți /tmp/collaborative_dir/file.txt

Comanda su vă poate da o eroare de autentificare. În acest caz, tastați sudo su comandă pentru a comuta la rădăcină și a rula din nou su - john pentru a schimba contul de utilizator

Acum enumerați permisiunile pentru a verifica setul (biții) GID pentru director și fișierul nou creat.

ls -ld /tmp/dir_colaborare /tmp/dir_colaborare/file.txt 

Într-un scenariu tipic, un fișier creat de john va avea un grup john alocat. Deoarece creați fișierul într-un director de biți GID setat, acesta îi atribuie permisiuni administratori grup, astfel încât oricine aparține grupului, ca utilizatorul Chris, va avea acces la el.Legate de: Cum se creează fișiere noi pe Linux folosind atingere

Sticky Bits

Spre deosebire de biții SID și GID, biții sticky diferă în funcție de funcționalitate, deoarece protejează fișierele și directoarele de redenumirea și ștergerea de către alți utilizatori. Permisiunea obișnuită a fișierului permite oricărui utilizator cu acces de scriere să ștergă sau să redenumească fișierul. În timp ce cu sticky bit setat, nu este posibil decât dacă sunteți utilizatorul root sau proprietarul fișierului.

Scenariul ideal pentru utilizarea biților sticky este directorul accesibil tuturor utilizatorilor pentru crearea fișierelor. De exemplu, utilizați ls -ld comanda pentru a verifica \tmp permisiuni de director, după cum urmează:

Puteți observa că bitul lipicios t înlocuiește bitul de execuție X. Urmați setul de instrucțiuni pentru a crea un director de ștergere restricționată:

Acum creați un alt director în /tmp pliant:

mkdir /tmp/new_dir

Schimbați permisiunile pentru fișiere în 1777 pentru a seta sticky bit (t) și acces complet la director:

chmod 1777 /tmp/new_dir

Acum copiați orice fișier din /etc folderul către /tmp/new_dir și schimbați permisiunile în 666:

cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/services

Listați directorul și tot conținutul acestuia pentru a vedea permisiunile:

ls -ld /tmp/new_dir /tmp/new_dir/services

Puteți observa bitul sticky în loc de bitul de execuție, ceea ce înseamnă că numai rădăcina sau utilizatorul John poate șterge fișierul, deoarece fișierul se află în directorul sticky bit.

Înțelegerea permisiunilor speciale pentru fișiere în Linux

Articolul demonstrează cum să setați acești biți pentru a îmbunătăți colaborarea asupra fișierelor și directoarelor partajate și a le proteja de accesul, execuția și ștergerea neautorizate. Chiar dacă nu creați fișiere/directoare cu acești biți, înțelegerea permisiunilor speciale pentru fișiere este utilă în multe situații, mai ales în depanarea sau ca administrator de sistem. Întrucât, utilizarea neînțeleaptă a acestor biți poate cauza diverse vulnerabilități de securitate.

Cum să păstrați permisiunile pentru fișiere în timp ce copiați fișiere în Linux

Doriți să păstrați permisiunile pentru fișiere în timp ce copiați fișiere pe Linux? Iată cum să o faci folosind cp și rsync.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Linux
  • Gestionarea fișierelor
  • Linux
Despre autor
Rumaisa Niazi (3 articole publicate)

Rumaisa este un scriitor independent la MUO. Ea a parcurs un drum lung de la un matematician la un pasionat de securitate a informațiilor și lucrează ca analist SOC. Interesele ei includ citirea și scrierea despre noile tehnologii, distribuțiile Linux și orice despre securitatea informațiilor.

Mai multe de la Rumaisa Niazi

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona