Î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.
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.
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
- Linux
- Gestionarea fișierelor
- Linux
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.
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