Sistemes Operatius

STI-1

GNU/Linux

Pràctica 2: Permisos dels fitxers i directoris.

03/11/09

DOCUMENTACIÓ

PERMISOS DELS FITXERS I DIRECTORIS

Tot arxiu i directori de Linux té definits una sèrie de permisos, que determinen quins són els drets que tenen els usuaris del sistema sobre éll. Aquests permisos són bàsicament: a) Execució b) Lectura c) Escriptura. D'altra banda, podem dividir els usuaris que accedeixen a un arxiu en 4 grups: a) L'usuari propietari de l'arxiu b) El grup d'usuaris dins dels quals es troba integrat l'usuari propietari c) La resta d'usuaris del sistema d) L'administrador de sistema (o root). Els permisos i el tipus d'usuari són dos paràmetres que es combinen, i condicionen les accions que podem realitzar sobre un arxiu.

Les ordres Linux que controlen aquests paràmetres són les següents:

a) ls -l per veure l'estat dels permisos, el propietari i el grup del propietari (i també altres informacions com data i hora de creació, i mida).

b) chmod per canviar l'estat dels permisos.

c) chown per canviar el propietari d'un arxiu.

d) chgrp per canviar el grup d'un arxiu.

1- Ordre ls -l

Ens permet veure l'estat dels permisos, el propietari i el grup del propietari (i també altres informacions com data i hora de creació, i mida).

L'usuari Pere és propietari de l'arixu notes.exe i és membre dels grups Direcció i Programadors. L'arxiu és de 1254 bytes i va ser modificat per última vegada el 2 d'Abril a les 18:35. Si fem un ls -l notes.exe surt:

<Permisos>

<Nº Vincles>

<Propietari>

<Grup>

Resta de dades

-rwxrr-xr--

1

Pere

Direccio

1254 Apr 2 18:35 notes.exe

Nota: El primer caràcter, indica el Tipus de fitxer.

Nota: Depen de si és fitxer o directori. Si és fitxer val 1. Si és directori, indica quants elements té dins seu.



Nota: El primer número indica la mida del fixer en bytes.

El tipus de fitxers més habituals que podem trobar són els següents:

-Fitxer normal b Fitxer de dispostiu de bloc (HD, CDROM...)
d Directori cFitxer de dispositiu de carácter (Impressora....)
l enllaç simbòlic n Fitxer especial de xarxa

Els Permisos són normalment els següents:

r Lectura w Escriptura x Execució -No permís de..
1r Grup -> Permisos del propietari del fitxer
2n Grup -> Permisos del grup del propietari del fitxer
3r Grup -> Permisos de la resta d'usuaris

NOTA: Aquests permisos no afecten a l'usuari root.

2- Ordre chmod

Ordre per canviar l'estat dels permisos.

Estructura: chmod   permisos   nom_fitxer

Permisos = Número de tres dígits en base octal (0..7). Cada dígit representa els permisos de cada grup.

Per obtenir el digit que representa els permisos d'un grup, hem de seguir el següent procediment: 1- Cada permís és valida amb un 1 i amb un 0 és nega el permis. 2-Tindrem per tant un número binari de tres dígits que representa els drets d'un grup per aquell fitxer. Convertim el número binari en octal. Ara només tenim un digit octal que representa els drets d'un grup per aquell fitxer. 3- Unim els tres digits octals i tindrem el número octal de tres dígits que representa els drets de tots els ususaris del sistema sobre el fitxer.

Exemple: Volem que notes.exe sigui d'ecriptura, lectura i executable per l'usuari propietari Pere, que només sigui de lectura i executable pel grup Direcció, i només de lectura per la resta d'usuaris. Llavors

Pere -> r=1 w=1 x=1 -> 111 -> 7

Direcció -> r=1 w=0 x=1 -> 101 -> 5

Resta Usuaris -> r=1 w=0 x=0 -> 100 -> 4

L'ordre és ===> chmod 754 notes.exe

També és posible donar permisos dels usuaris per treballar amb directoris. En aquest cas:

a) Permis de lectura => Permet fer un llistat dels arxius que hi ha dins del directori.

b) Permis d'execució => Permís per crear i esborrar fitxers propis del directori.

c) Permis d'escriptura => Permís a altres usuaris per escriure (o sigui gravar) fitxers no propis del directori.

3- Ordre chmod (Ampliació)

Els permisos es poden modificar en grup, com hem vist a l'apartat anterior, utilitzant la notació octal, o es poden canviar individualment. En aquest cas, farem servir una combinació dels conjunt de símbols següents:
a) Símbols u, g, o,a ==> u representa a l'usuari propietari, g representa al grup d'usuaris amb permisos especials sobre un fitxer o directori, o representa a la resta d'usuaris, i a representa a tots els usuaris.
b) Símbols + , - ==> El signe + representa donar un permís, i el signe - representa denegar un permís.
c) Símbols r,w,x ==> r representa el permís de lectura, w representa el permís d'escriptura, i x representa el permís d'execució.

Així, la combinació u-w vol dir que a l'usuari propietari del fitxer (u) se'l denega (-) el permís d'escriptura (w) d'un determinat fitxer o directori.. La combinació o+r vol dir que a la resta d'usuaris (o) se'ls dóna permís (+) de lectura (r) sobre un fitxer o directori (La resta d'usuaris són, evidentment, els que no són el propietari o formen part del grup d'usuaris amb permisos especials sobre el fitxer). La combinació a+x vol dir que a tots els usuaris (a) se'ls dóna permís (+) d'execució (x) sobre un fitxer o directori.

Exemple 1) Volem denegar el permís d'escriptura sobre el fitxer notes.exe a l'usuari propietari Pere. Llavors executarem:

chmod u-w notes.exe

Exemple 2) Volem donar permís dexecució del fitxer notes.exe a tots els usuaris del sistema. Llavors executarem:

chmod a+x notes.exe

Exemple 3) Volem denegar permís d'execució de notes.exe als usuaris que no formen part del grup d'usuaris amb permisos especials sobre els fitxer. Llavors executarem:

chmod o-x notes.exe

Exemple 4) Volem donar permís d'escriptura sobre notes.exe als usuaris que formen part del grup d'usuaris amb permisos especials sobre els fitxer. Llavors executarem:

chmod g+w notes.exe

4-Ordre chown

Utilittat: Ordre per canviar el propietari d'un arxiu.

Estructura: chown  nou_propietari  nom_fitxer(s)

Exemple: chown  joan  notes.exe

5- Ordre chgrp

Ordre per canviar el grup d'un arxiu.

Estructura: chgrp  nou_grup   nom_fitxer

Ex: chgrp  programadors  notes.exe

PRÀCTIQUES

1- Obre l'editor joe i escriu les segúents línies:

echo Hola $LOGNAME
read
echo El teu directori personal és $PWD
read
echo El contingut del teu directori és:
ls -ls

Desa el fitxer amb el nom prog.sh. Comprova amb quins permisos s'ha desat al disc dur.

2- Fes que que l'usuari propietari del programa tingui permisos de lectura, escriptura i execució, que el grups d'usuaris amb permisos especials tingui permisos de lectura i execució, i que la resta d'usuaris només tingui permís de lectura.

3- Executa el programa amb l'ordre ./prog.sh.

4- Fes que que l'usuari propietari del programa tingui permisos d'escriptura i execució, que el grups d'usuaris amb permisos especials tingui permisos d'execució, i que la resta d'usuaris no tingui cap tipus de permís sobre el fitxer. Intenta obrir el fitxer amb l'editor joe. Ho pots fer?. Per què? Intenta visualitzar el fitxer amb l'ordre cat. Ho pots fer?. Per què?. Intenta executar el programa. Ho pots fer?. Per què?

5- Fes que que l'usuari propietari del programa tingui permisos de lectura i execució, que el grups d'usuaris amb permisos especials tingui permisos de lectura, i que la resta d'usuaris no cap tipus tingui de permís. Intenta esborrar el fitxer. Ho pots fer?

6- Identifica els grups d'usuaris dels quals forma part l'usuari sti1.

7- Com a usuari root, canvia el nom del propietari del fitxer. Fes que ara el propietari sigui l'usuari sti2.

8- Com a usuari root, canvia el nom del grup d'usuaris amb permisos especials sobre el fitxer. Fes que ara sigui el grup modem.

9- Torma a ser l'usuari sti1 i intenta executar el programa. Ho pots fer?. Per què?. Com a usuari root torma a deixar el fitxer prog.sh en els condicions en les quals es trobava abans de fer els apartats 7 i 8. Torna a ser sti1 i torna a donar a prog.sh els permisos de l'apartat 2.

10- Crea un directori de nom perm. Comprova amb quins permisos ha esta creat.

11- Modifica el permisos perque sigui de només lectura per tothom.

12 Intenta entrar al directori. Ho pots fer?. Per què?.

13- Modifica el permisos del directori perque sigui de lectura i execució per tothom.

14- Intenta entrar al directori. Ho pots fer?. Per què?. Intenta crear un fitxer dins del directori. És posible?. Per què?

15- Modifica el permisos del directori perque sigui de escritura i execució per tothom, però que ningú tingui drets de lectura. Intenta fer un llistat dels fitxers del directori. Ho pots fer? Per què?.

16- Modifica el permisos del directori perm perque sigui de lectura, escritura i execució per l'usuari propietari, i que no tingui cap tipus de permis per la resta d'usuaris. Mou el programa prog.sh dins del directori perm. Ara modifica els permisos del directori perquè siguin de nomes lectura i execució per l'usuari propietari. Entra dins del directori perm i intenta esborrar el fitxer prog.sh. Què passa?. Intenta canviar el nom del fitxer prog.sh pel nou nom prova.sh. Ho pots fer?. Per què?

17- Modifica el permisos del directori perm perque sigui de lectura, escritura i execució per l'usuari propietari, i que no tingui cap tipus de permis per la resta d'usuaris. Modifica els permisos de prog.sh perquè sigui de només lectura i execució per l'usuari propietari, i que no tingui cap tipus de permis per la resta d'usuaris. Intenta esborrar el fitxer prog.sh. Què passa?. Quina és la diferència respecte de l'apartat anterior?. Intenta canviar el nom del fitxer prog.sh pel nou nom prova.sh. Ho pots fer?.

18- Modifica el permisos del directori perm perque sigui de lectura, escriptura i execució per tothom.

NOTA: Els següents apartats s'han de fer utilitzant els símbols indicats a l'apartat 3 de la documentació.

19- Denega a l'usuari propietari l'execució del del directori perm.

20- Denega el permís d'escriptura sobre el directori perm als usuaris que no formen part del grup d'usuaris amb permisos especials sobre els fitxer.

21- Denega a tothom el permis de lectura sobre el directori perm.

22- Denega el permís d'execució sobre el directori perm als usuaris que formen part del grup d'usuaris amb permisos especials sobre els fitxer.

23- Dóna a tothom el permis d'execució sobre el directori perm.

24- Dóna a l'usuari propietari el permís de lectura del del directori perm.

25- Dóna el permís d'escriptura sobre el directori perm als usuaris que no formen part del grup d'usuaris amb permisos especials sobre els fitxer.

26- Comprova l'estat dels permisos del directori perm des de l'entorn gràfic.

27- Canvia els permisos del directori perm des de l'entorn gràfic, i fes que sigui de lectura, escritura i execució per l'usuari propietari, i que no tingui cap tipus de permis per la resta d'usuaris. 

28- Comprova des de l'entorn gràfic els permisos del directori perm. Utilitza l'opcío de menú Visualitza --> Mode de  vista --> Vista de llista detallada. Si no veus la columna de Permisos, Amo o Grup, llavors les pots afegir amb  Visualitza --> Mode de  vista -->  Mostra detalls.

29- S'ha de lliurar un informe de la pràctica en format PDF a l'adreça de correu electrònic cf(arrova)collados.org. El nom del fitxer serà sti1_nom_cognom_pr2_linux.pdf. Nom i cognom són els vostre propis. A l'assumpte del correu heu de posar sti1_nom_cognom_pr2_linux. El vostre nom, cognom i curs també ha de posar-se al principi del treball. L'últim dia per lliurar el treball és el dilluns 15-11-2009. Cada dia que passi d'aquesta data, treuré dos punts a la nota del treball.