Els drets que es concedeixen o deneguen son; lectura (r), escriptura (w) i execució (x). I la seva aplicació en els diferents tipus de fitxers s'indica en la taula següent:
| r (llegir) | w (escriure) | x (executar) | |
|---|---|---|---|
| fitxers | Es pot examinar el contingut more, cat, lp | Es pot examinar el contingut vi | Es pot utilitzar com a comanda |
| Directoris | Es pot examinar el contingut ls | Es pot modificar el contingut rm,cp,mv | Es possible entrar-hi cd |
Umask indica amb un nombre octal codificat binari de 3 digits quins son els drets d'accés per l'usuari (u) amb el tercer dígit, pel grup (g) amb el segón dígit, i per la resta del mon (o) amb el pimer. Per exemple `umask 26' provoca la creació de fitxers amb els drets d'accés "rw- r-- ---".
Càlcul d'umask.
Exemple: volem obtindre uns permisos per defecte tals com: rw-r----- 110 100 000 (rw- r-- --- en binari) XOR 110 110 110 (666) --------------- 00 010 110 (026 en octal codificat binari)Cal tindre en compte que tot i que una determinada mascarà tingui assignats drets "x", al crear un fitxer no se li aplicaran aquests drets a menys que sigui un directori o el resultat d'una compilació. La funció inversa, que a partir d'una màscara fa un XOR per trobar els drets d'accés a assignar, es calcula amb 666 pels fitxers plans i amb 777 en el cas de directoris.
Si "toquem" un fitxer amb la comanda touch, se li actualitzarà la data d'última modificació i accés, i els drets d'accés quedaran segons umask.
Assignació explícita de drets d'accés. Chmod També és possible canviar els drets d'accés d'un fitxer o directori directament. Es faria amb la comanda chmod. És molt recomenable donar-li una mirada a la pàgina de manual d'aquesta comanda ja que conté una explicació detallada dels diferents permisos del unix.
Exemples:
# chmod g=rw a.dat (-???rw-???) # chmod g+w dades (-????w????) # chmod o-x a.exe (treure el dret d'execució per la resta) # chmod 766 b.dat (-rwxrw-rw-) # chmod -R 640 a.dir (-rw-r----- per tots els fitxers del directori)
Exemple:
sol{48} ~ : umask 26
sol{51} ~ : touch a.b
sol{52} ~ : ls -l a.b
-rw-r----- 1 root 0 Mar 29 09:38 a.b
sol{53} ~ : chmod 26 a.b
sol{54} ~ : ls -l a.b
-----w-rw- 1 root 0 Mar 29 09:38 a.b
També és possible canviar propietari i grup directament desde la comanda chown utilitzant el format
chown loginname.grup fitxerOSF/1 3.x també acepta el format
chown loginname:grup fitxerH4>Algorisme de la llista d'accés dels drets d'accés en unix En un cas general, els drets s'apliquen com una llista d'accés que segueix l'algorisme que es descriurà a continuació. En tot cas, encara que s'estigui totalment segur de com actuarà una determinada protecció sobre un fitxer o directori, mai estarà de més comprovar-ho.
SI (l'usuari és el propietari) LLAVORS
# aplicar drets de propietari
SI (usuari te dret) LLAVORS
executar comanda
FSI
SINO SI (grup coincideix) LLAVORS
# aplicar drets de grup
SI (grup te dret) LLAVORS
executar comanda
FSI
SINO # aplicar drets de la resta del mon
SI (un altre usuari te dret) LLAVORS
executar comanda
FSI
FSI
Exemple d'utilització de setuid:
%ls -lg /bin/passwd -r-sr-sr-x 3 root sys 15688 Oct 25 12:10 /bin/passwdPer marcar un fitxer amb setuid tenim dues opcions, assignar directament la "s" o sumar 4000 al codi octal dels permisos que ja tenia en el cas de setuid per usuari, i 20#0 si es tracta d'un setuid de grup. En aquest cas # ha de ser 7, 5, 3 o 1.
Exemple d'assignacions de setuid:
-rw-r-x--x 1 sanroma scc 4 Mar 17 17:20 a.dat
% chmod u+s a.dat
-rwsr-x--x 1 sanroma scc 4 Mar 17 17:20 a.dat
sol{59} ~ : chmod 775 a.dat
-rwxrwxr-x 1 sanroma 0 Mar 29 09:38 a.dat
sol{61} ~ : chmod 4775 a.dat
-rwsrwxr-x 1 sanroma 0 Mar 29 09:38 a.dat
sol{63} ~ : chmod 2775 a.dat
-rwxrwsr-x 1 sanroma 0 Mar 29 09:38 a.dat
sol{65} ~ : chmod 6775 a.dat
-rwsrwsr-x 1 sanroma 0 Mar 29 09:38 a.dat
Exemple:
sol{27} ~ : chmod 2020 a.a
sol{28} ~ : ls -lg a.a
-----wS--- 1 sanroma scc 0 May 20 17:03 a.a
Quan un directori té activat el sticky bit i té dret d'escriptura, per tal que qualsevol fitxer o directori intern pugui ser borrat o canviat de nom, cal que alguna de les següents condicions sigui certa
% ls -lgd a.dir drwxr-x--- 2 sanroma scc 512 Mar 17 17:31 a.dir/ %chmod 1777 a.dir % ls -lgd a.dir drwxrwxrwt 2 sanroma scc 512 Mar 17 17:31 a.dir/Un exemple d'utilització de sticky bit en el sistema operatiu és el cas del directori /tmp. Un directori que ha de poder ser utilitzat per qualsevol procés del sistema, sigui quin sigui el uid del procés. Tothom ha de poder-hi escriure, però no interessa que un determinat procés pugui veure o modificar els fitxers temporals d'un altre usuari.
Exemple dels permisos de /tmp:
% ls -lgd /tmp drwxrwxrwt 8 sys sys 2560 Mar 16 19:32 /tmp/ % ls -lg /tmp .... -rw------- 1 auto bio 1527 Mar 17 17:45 prova_sticky.bit ... % more /tmp/prova_sticky.bit /tmp/prova_sticky.bit: Permission denied