sommaire

Droits Unix sur les fichiers

Dans un environnement Unix tous est fichiers (les fichiers, les repertoires, les peripheriques ...)

un fichier se presente comme ceci:

-rw-------    1 fred     fred          40K jun  9 15:46 Plan.pdf

les droits sont representés par les 10 premiers caracteres: -rw-------
    le premier represente le type de fichiers:
        - : fichier standart
        d : repertoire                                     ( drwxr-xr-x    1 root     root            0 jan  1  1970 target0/ )
        l : lien                                                ( lr-xr-xr-x    1 root     root           11 jui 24 14:11 amidi -> sound/amidi )
        b : peripherique de type bloc            ( brw-------    1 root     root       3,   0 jan  1  1970 generic )
        c : peripherique de type caractere     ( crw-------    1 fred     root       5,   1 jui 24 14:13 console )
        s : socket                                            ( srwx------    1 fred     root            0 jui 24 14:11 gpmctl= )
        p : pipe                                               ( prw-------    1 root     root            0 jui 24  2003 initctl|  )


    les 9 autres representent les droits repartis en trois groupes : l'utilisateur (le proprietaire) (u) le groupe (g) et les autres (o)

la 2° colone indique le nombre de fichier dans ces sous fichiers (ici 1 car c'est un fichier satndart)
la 3° colone donne le proprietaire
la 4° colone donne le groupe
ici le propriaitaire est fred idem pour le groupe
la 5° colone donne la taille
le reste donne la date de creation (ou de derniere modification ) ainsi que le nom du fichier


Les droits:

sur les fichiers standarts:
    r: permet de lire le contenu d'un fichier
    w: permet d'ecrire dans le fichier
    x: permet l'excution du fichier si ce fichier est executable

sur les repertoires:
    r: permet de lister le contenu d'un repertoire
    w: permet de creer des fichiers ou de les supprimer (dans le repertoire)
    x: permet de parcourir le repertoire , sans ce droit un repertoire n'est pas accessible.

Les autres droits:


les 3 autres droits sont :
    le sticky bit
    le bit setGid
    le bit setUid

Le setGid permet l'heritage:
ce droit est materialisé par un s (ou S si le droit x n'est pas present)

drwxrwsr-x    2 fred     maison       4.0K jui 24 15:04 rep1/

ceci permet de creer des fichiers par tous les utilisateurs du groupe maison, ces fichiers auront comme groupe commun maison, le proprietaire reste le createur:

drwxrwsr-x    2 fred     maison       4.0K jui 24 15:04 ./
drwxr-xr-x    3 fred     fred         4.0K jui 24 15:04 ../
-rw-r--r--    1 fred     maison          0 jui 24 15:04 fic_fred
-rw-r--r--    1 nathalie maison          0 jui 24 15:03 fic_nath


Attention dans ce cas tous les membres de maison peuvent detruire tous les fichiers de rep1/ car ils ont le droits w sur ce repertoire


Le setUid permet l'execution d'un fichier en tant que proprietaire:


ce droit est materialisé par un s (ou S si le droit x n'est pas present)

-rwsr--r--    1 nathalie maison          0 jui 24 15:13 fic.exe*

Le sticky bit: seulement le proprietaire peut effacer ses fichiers:

ce droit est materialisé par un t (ou T si le droit x n'est pas present)
on a:

[nathalie@linuxfred rep1]$ lla
total 8.0K
drwxrwsr-t    2 fred     maison       4.0K jui 24 15:19 ./
drwxr-xr-x    3 fred     fred         4.0K jui 24 15:04 ../
-rw-r--r--    1 fred     maison          0 jui 24 15:19 fic_fred
-rw-r--r--    1 nathalie maison          0 jui 24 15:19 fic_nath


si l'utilisateur nathalie essaye de supprimer le fichier fic_fred:

[nathalie@linuxfred rep1]$ rm fic_fred
rm: détruire un fichier protégé en écriture fichier régulier vide `fic_fred'? o
rm: Ne peut enlever `fic_fred': Operation not permitted


Attention dans ce cas l'utilisateur fred peut supprimer le fichier fic_nath car il possede le droit w sur le repertoire courant (rep1/ )

Les commandes utiles pour modifier les droits sur les fichiers:

chmod: change les droits
chown: change le proprietaire et le groupe
chgrp: change le groupe

le changement peut se faire avec les droits du style : chmod u+x rep ou chmod g-x rep
ou encore
en octal, sachant que :
r =4
w =2
x =1
setUid = 4000
setGid = 2000
sticky bit = 1000
0 permet de ne rien changer

donc un fichier avec ces droits:

drwxr-xr-x    3 fred     fred         4.0K jui 24 15:31 testdroits/

en octal : 755
et :

drwsr-xr-x    3 fred     fred         4.0K jui 24 15:31 testdroits/

en octal : 4755

avec chmod:
chmod 755 testdroits ou encore chmod 4755 testdroits