Académique Documents
Professionnel Documents
Culture Documents
04 Acl
04 Acl
Pour voir les droits sur un fichier ou un répertoire, il suffit d'exécuter la commande ls -l :
#ls -l
Le premier groupe de trois lettres correspond au propriétaire (u: User), le second au groupe (g:
Group), le troisième à tous les autres (o: Others).
Le premier caractère du groupe correspond aux droits de lecture (r: Read), le second d'écriture (w:
Write), le troisième aux droits d'exécution (x: eXecute).
lost+found est un répertoire (première lettre = d), ayant pour droits d'accès
lecture/écriture/exécution (rwx) pour le propriétaire , lecture et exécution (r-x) pour le groupe et
lecture/exécution (r-x) pour les autres.
#ls -l
drwxr-s--- 2 intgrrci intgrrci 96 Dec 11 15:08 V29.1.0
drwxr-s--- 2 intgrrci intgrrci 96 Jun 28 2004 admin
drwxr-s--- 2 intgrrci intgrrci 96 Jun 28 2004 bin
drwxrws---+ 2 intgrrci intgrrci 8192 Jan 9 09:59 conf
drwxr-sr-x 7 intgrrci intgrrci 8192 Jan 8 09:43 data
drwxr-sr-x 2 intgrrci intgrrci 8192 Nov 9 17:01 db
drwxrwsr-x+ 32 intgrrci intgrrci 8192 Jan 11 09:45 livr
drwxrws---+ 2 intgrrci intgrrci 606208 Jan 15 12:41 logs
drwxr-xr-x 2 root root 96 Jan 11 2006 lost+found
drwxr-s--- 2 intgrrci intgrrci 96 Jun 28 2004 macros
drwxrwsr-x 3 intgrrci intgrrci 8192 Dec 3 14:28 scripts
drwxr-s--- 3 intgrrci intgrrci 8192 Dec 4 13:47 sql
drwxr-s--- 2 intgrrci intgrrci 96 Mar 10 2006 src
On peut être étonné de voir des motifs comme drwxrwsr-x. Que représente donc ce droit s ?
Le s (ou S) représente un droit SGID ou le droit SUID en fonction de l'endroit où il est placé.
Si nous avons, par exemple rwsrwxrwx, il s'agit d'un droit SUID, si nous avons rwxrwsrwx, il s'agit
d'un droit SGID.
SUID
Le droit SUID permet d'exécuter un fichier avec les droits du propriétaire du fichier. Habituellement,
lorsqu'un utilisateur exécute un fichier, quelqu'il soit, l'exécution se réalise avec les droits de
l'utilisateur (droits d'accès aux répertoires, création, écriture ou lecture de fichiers, etc.). Dans
certains cas, il peut être utile que l'exécution se réalise avec les droits du propriétaire du fichier.
Le droit SUID est noté ---s------ dans le cas ou s remplace un - ou ---S------, dans le cas ou s cache un x.
Sur un répertoire, ce droit permet d'affecter les droits du propriétaire à tous les fichiers créés dans ce
répertoire.
SGID
Le droit SGID permet d'exécuter un fichier avec les droits du groupe propriétaire du fichier.
Habituellement, lorsqu'un utilisateur exécute un fichier, quelqu'il soit, l'exécution se réalise avec les
droits de l'utilisateur (droits d'accès aux répertoires, création, écriture ou lecture de fichiers, etc.)
Dans certains cas, il peut être utile que l'exécution se réalise avec les droits du groupe propriétaire du
fichier.
Le droit SGID est noté ------s--- dans le cas ou s remplace un - ou ------S---, dans le cas ou s cache un x.
Sur un répertoire, ce droit permet d'affecter les droits du groupe propriétaire à tous les fichiers créés
dans ce répertoire.
le sticky bit
Sur un fichier, ce droit indique que le fichier doit rester en mémoire vive, même si l'on en a plus
besoin.
Sur un répertoire, ce droit empêche de supprimer des fichiers par une autre personne que son
propriétaire.
Remarque
Si le sticky bit empêche de supprimer des fichiers, il n'empêche pas de les vider de leur contenu.
Le droit sticky bit est noté ---------t dans le cas ou t remplace un - ou ---------T, dans le cas ou t cache
un x.
s(uid) 4
s(gid) 2
t(sticky bit) 1
Les ACL
Les ACL sont notés par un + sur les droits d'accès. Par exemple :
Les ACL permettent d'ajouter des permissions plus exceptionnelles de façon simple.
En fonction de l'UNIX employé, les ACL seront déjà installés ou pas. Sous FreeBSD, par exemple, il
faudra recompiler le noyau pour disposer de cette fonctionnalité.
Tout d'abord, sachez que les ACL ne peuvent être utilisées que si le noyau le supporte, pour savoir si
c'est votre cas, loguez-vous en tant que root et Tapez ensuite :
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4DEV_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
La ligne suivante indique que le support général des ACL est présent :
CONFIG_FS_POSIX_ACL=y
Ensuite des lignes du type suivant permettent de savoir pour quels systèmes de fichiers les ACL sont
disponibles :
CONFIG_SystemeDeFichiers_FS_POSIX_ACL=y
On remarque que chez moi, Les ACL fonctionnent sur les volumes formatés en EXT2, EXT3, EXT4 et
pleins d'autres formats exotiques :)
Les ACL ne sont pas disponibles sur les systèmes vfat (FAT16 et FAT32), vous ne pourrez donc pas
utiliser les ACL sur une clé USB formatée pour Windows, Cela ne devrait toutefois pas poser
problème .
Installation du paquet acl
Les ACL sont activées, mais nous ne pouvons toujours pas les modifier, pour cela nous devons
installer le paquet acl :
Les ACL sont gérés par les deux commandes setfacl (affecter) et getfacl (afficher).
-s (attribuer)
-m (modifier)
-x (supprimer)
Il y a toutes les options suivantes :
Exemples
#getfacl reperoireDeTest/
# file: reperoireDeTest/
# owner: op414
# group: op414
user::rwx
user:bernard:rwx
user:patrick:r--
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:bernard:rwx
default:user:patrick:r--
default:group::rwx
default:mask::rwx
default:other::---
Je ne m'étends pas sur les résultats, ils sont facile à comprendre, hormis une notion : le masque
(mask)
Le masque
Le masque vous permet de savoir quelles sont les autorisations maximales accordées à un fichier ou
dossier (utilisateurs et groupes confondus), les droits classiques (chmod) ne sont pas comptabilisés.
#getfacl test
# file: test
# owner: op414
# group: op414
user::rwx
user:bernard:rwx
user:patrick:r--
group::rwx
mask::rwx
other::--
Ici, le masque est rwx car bernard possède les droits rwx.
L'utilité du masque est de pouvoir enlever des permissions à tous les utilisateurs et groupes (sauf
de l'utilisateur propriétaire, dont les droits sont définis par chmod):
#getfacl test
# file: test
# owner: op414
# group: op414
user::rwx
user:bernard:rwx #effective:r--
user:patrick:r-- #effective:r--
group::rwx #effective:r--
mask::r--
other::---
On remarque que les droits de bernard, patrick et du groupe propriétaire n'ont pas été modifiés (ce
qui permet de les rétablir en ré-augentant le masque ). En revanche, il est maintenant écrit
#effective:r-- en face de leurs lignes. Cela signifie que leurs droits réellements appliqués sont r-- .
# nano /etc/fstab
Vous devez rajouter ,acl dans la colonne "options" de la partition concernée :
Voilà, ma partition principale sera automatiquement montée avec l'option acl au démarrage Si vous
avez une partition /home séparée, vous devez bien entendu modifier sa ligne.
Il ne vous reste plus qu'à redémarrer ou remonter les partitions concernées comme vu
précédemment.