Igorka a dat buzunare și comandă umask

În continuarea articolului despre bit setuid a decis să scrie un similar și despre bitul setgid. mai ales că exemplul pe care l-aș da aici a fost temele noastre la cursurile Linux. Deși sarcina, în opinia mea, a fost simplă, doar doi din șase ascultători au făcut-o. M-am descurcat cu sarcina și vreau să vă spun exact cum. Și sarcina a fost următoarea: creați un folder PUB partajat pentru doi utilizatori, pentru colaborarea lor. Utilizatorii ar trebui să poată crea fișiere într-un dosar și să își editeze reciproc fișierele. Alți utilizatori nu au acces la dosar.







Pentru a rezolva această problemă, avem nevoie de bitul setgid. Permiteți-mi să vă reamintesc că dacă acest bit este setat pentru un director, atunci obiectele create în el vor primi grupul proprietarului directorului, și nu cel al utilizatorului. Explicație: există un utilizator. Creează un fișier în director (bitul setgid nu este setat). Proprietarul acestui fișier va fi igor. grupul de proprietari grupul principal de utilizator igor (în mod implicit igor). Dacă există un director al cărui proprietar este root. dar cota grupului proprietar. și bitul setgid este setat, atunci proprietarul obiectului creat va fi igor. iar grupul proprietarului nu este igor. și partajați (precum și directorul). În continuare în exemplul acesta va fi și mai clar.

Mai intai creez directorul PUB:

După aceea, creez grupul PUB. care va fi grupul de proprietari ai acestui catalog:

$ sudo grup de adunări

Un utilizator va fi I (igor), iar cel de-al doilea creez:

$ sudo adduser olya

Acum adaug utilizatorilor la grupul pub-urilor:

$ sudo addgroup igor pub
igor @ ubuntu:

$ sudo addgroup olya pub

Am verificat dacă utilizatorii au fost adăugați la grupul pub-urilor:







$ mai puțin / etc / grup | grep pub
pub: x: 1002: igor, olya

Acum schimba grupul proprietar / PUB de la root la pub:

$ sudo chown rădăcină: pub / PUB /

Acum am setat permisiunile în directorul / PUB și bitul setgid și verificați rezultatul:

$ sudo chmod g + ws, o = / PUB /
igor @ ubuntu:

Bitul setgid este setat, ceilalți utilizatori nu au drepturi.

Se pare că am făcut totul. Verific. Mă loghează cu contul olya și creez fișierul file.txt:

Din consola de utilizator igor încerc să schimb fișierul:

$ echo Bună ziua! /PUB/file.txt
bash: /PUB/file.txt: Permisiunea a fost refuzată

și am primit un mesaj că accesul este refuzat. Verifică permisiunile fișierului:

$ ls -l / PUB /
ls: nu se poate deschide directorul / PUB /: Permisiune refuzată

Probabil că trebuie să vă deconectați și să intrați din nou în consola, deoarece nu știe încă că am fost adăugat la grupul de pub-uri. Ieșesc din nou din sistem, verifică drepturile:

Văd că pentru grupul pubului fișierul are permisiuni numai pentru citire. Îmi amintesc de drepturile implicite, de șablon și de comanda umask. Pentru toți utilizatorii, șablonul care specifică drepturile pentru obiectele care vor fi create este setat la 0022 (pentru a fi sigur, puteți introduce umask fără parametri), care dă obiectului fișierul drept 644 (sau -rw-r-r-). Trebuie să modificați acest șablon pentru utilizatorii igor și olya. astfel încât drepturile pentru fișierele create sunt -rw-rw--. În acest caz, șablonul va fi 0017. În Ubuntu, acest șablon este specificat în fișierul .profile. care este localizat în directorul de acasă al fiecărui utilizator. Schimb acest șablon în fișierul .profile al utilizatorilor igor și olya. Este necesar să găsiți un șir cu cuvântul umask și să schimbați valoarea acestuia. Intră din nou în sistem și verifică rezultatul:

$ atingeți /PUB/file.txt
igor @ ubuntu:

$ echo Bună ziua! /PUB/file.txt
igor @ ubuntu:

$ cat /PUB/file.txt
Buna ziua!
igor @ ubuntu:

$ atingeți /PUB/file2.txt
olya @ ubuntu:

$ echo Bună ziua Igor!> file2.txt
olya @ ubuntu:

Acum totul este în ordine. Directorul / PUB creează fișiere editabile pentru ambii utilizatori. Sarcina este destul de comună și acum știu cum poate fi rezolvată, știind că există un pic de segid și comanda umask.







Trimiteți-le prietenilor: