This is an old revision of the document!
umask
, autentificare, autorizare, controlul accesului, root
, sudo
, parole, password cracking, passphrase, /etc/passwd
, /etc/shadow
, criptografie, criptare, decriptare, plain text, ciphertext, chei simetrice, chei asimetrice, semnătură digitală, semnare, verificarePentru rularea demo-urilor de mai jos folosim mașina virtuală USO Demo. Mașina virtuală (în format OVA) poate fi importată în VirtualBox. Comenzile le vom rula în cadrul mașinii virtuale.
Mașina virtuală deține două interfețe de rețea:
eth0
pentru accesul la Internet (interfață de tipul NAT)eth1
pentru comunicarea cu sistemul fizic (gazdă, host) (interfață de tipul Host-only Adapter)Pentru a rula demo-ul avem două opțiuni:
eth1
a mașinii virtuale și ne conectăm prin SSH, de pe sistemul fizic, folosind comandassh student@<adresa-IP-vm-eth1>
unde <adresa-IP-vm-eth1>
este adresa IP a interfeței eth1
din cadrul mașinii virtuale.
Pentru conectarea la mașina virtuală folosim numele de utilizator student
cu parola student
. Contul student
are permsiuni de sudo
. Folosind comanda
sudo su -
obținem permisiuni privilegiate (de root
) în shell.
eth1
atunci folosim comanda
sudo dhclient eth1
pentru a obține o adresă IP.
Unul dintre cele mai importante principii în securitate este principiul celui mai mic privilegiu (least privilege). Pentru aceasta, inclusiv în sistemul de fișiere (fișiere, directoare), se recomandă permisiuni (drepturi de acces minime). Acestea pot fi schimbate folosind comanda chmod
. Dorim, însă, să putem configura permisiunile implicite la crearea intrărilor în sistemul de fișiere. Pentru aceasta folosim comanda umask
.
La o rulare simplă, comanda umask
ne afișează valoarea sa:
student@uso-demo:~$ umask 0022
Comanda umask
indică permisiunile care vor fi absente în momentul creării unor intrări. Regulile de stabilire a permisiunilor de creare sunt:
Pentru umask = 0022
, ~umask = 7755
. Rezultă permisiunile de creare:
666 & 7755 = 0644
777 & 7755 = 0755
Putem verifica acest lucru creând un fișier și un director:
student@uso-demo:~$ touch test-file student@uso-demo:~$ mkdir test-dir student@uso-demo:~$ ls -l total 4 drwxr-xr-x 2 student student 4096 Jan 5 11:31 test-dir -rw-r--r-- 1 student student 0 Jan 5 11:31 test-file
Observăm că fișierul (test-file
) a fost creat cu permisiunile rw-r–r–
(adică 644
) iar directorul (test-dir
) a fost creat cu permisiunile rwxr-xr-x
(adică 755
). Adică valorile așteptate.
În ideea de least privilege, este uzual să oferim permisiuni doar utilizatorului (user
) și nici o permisiune pentru group
și others
. Pentru aceasta stabilim valoarea umask
la 077
, folosind comanda
student@uso-demo:~$ umask 077 student@uso-demo:~$ umask 0077
Observăm din a doua comandă că acum valoarea umask
este alta.
Creăm un nou fișier și un nou director și verificăm aplicarea noii valori a umask
pentru stabilirea permisiunilor de creare:
student@uso-demo:~$ touch test-file-2 student@uso-demo:~$ mkdir test-dir-2 student@uso-demo:~$ ls -l total 8 drwxr-xr-x 2 student student 4096 Jan 5 11:31 test-dir drwx------ 2 student student 4096 Jan 5 11:36 test-dir-2 -rw-r--r-- 1 student student 0 Jan 5 11:31 test-file -rw------- 1 student student 0 Jan 5 11:36 test-file-2
Observăm că fișierul (test-file-2
) a fost creat cu permisiunile rw——-
(adică 600
) iar directorul (test-dir
) a fost creat cu permisiunile rwx——
(adică 700
). Adică valorile așteptate, rezultate în urma calculului:
666 & ~umask = 666 & ~0077 = 666 & 7700 = 600 = rw——-
777 & ~umask =777 & ~0077 = 777 & 7700 = 700 = rwx——
Valoarea umask
este configurată funcție de nevoile utilizatorului ținând cont și de principiul celui mai mic privilegiu.
umask
este pe 4 cifre în octal. Prima cifră este aferentă biților speciali (setuid
, setgid
, sticky
) folosiți în permisiuni. Nu insistăm pe acest lucru. Puteți găsi informații în secțiunile aferente din pagina de manual a chmod.
umask
se recomandă plasarea comenzii de configurare într-un fișier de configurare a sesiunii de shell (precum ~/.bashrc
).
TODO
TODO
TODO
TODO