Aller à la recherche

Mettre en oeuvre des ACL sous Linux

La norme historique POSIX définit à 3 entités (propriétaire, groupe propriétaire, autres) sur lesquels, on à la possibilité d'appliquer des droits d’accès en lecture, écriture et d'exécution sur les fichiers et répertoires. Afin d'étendre ces possibilités, il a été mis en place les ACL. Il est maintenant possible de donner des droits de lecture, d'écriture ou d'exécution à un utilisateur particulier sans qu'il en soit le propriétaire ou qu'il fasse parti d'un groupe de propriétaire.

Linux introduction aux ACL

Nous allons partir de cette arborescence

mdkir -p {aclDossier/aclImage.jpg,aclFichier.txt}

.
├── aclDossier
│   ├── aclImage.jpg
└── aclFichier.txt

Puis récupérer les ACL sur le dossier courant getfacl . # file: . # owner: howto # group: users user::rwx group::r-x other::r-x

qui correspond en réalité au droit POSIX rwx-r-xr-x

Mainenant positionnant une ACL à l'utilisateur user1 en lecture et écriture aclDossier/aclImage.jpg setfacl -m u:user1:rw aclDossier/aclImage.jpg

Si nous verifions les ACL sur le fichier aclImage.jpg getfacl aclDossier/aclImage.jpg On obtient

# file: aclDossier/aclImage.jpg
# owner: root
# group: root
user::rw-
__user:user1:rw-__
group::r--
mask::rw-
other::r--

On voit la ligne user:user1:rw-

On peut aussi avec la commande ls -l aclDossier se rendre compte qu'il existe des acl sur le fichier car un petit + a été ajouté à la sortie de la commande. ls -l aclDossier -rw-rw-r--+ 1 root root 0 1 janv. 17:59 aclImage.jpg

On peut de la même manière positionner des acl sur un groupe. setfacl -m g:testacl:rw,u:user1:r aclDossier/aclImage.jpg

Nous avons enlevé le droit en écriture sur l'image à l'utilisateur user1 et ajouté des droits de lecture et en écriture au groupe testacl Nous pouvons visionner les droits getfacl .

# file: aclDossier/aclImage.jpg
# owner: root
# group: root
user::rw-
user:user1:r--
group::r--
group:testacl:rw-
mask::rw-
other::r--

Afin que les droits soient propagés aux sous répertoires, il faut préciser qu'il s'agit de droits par défaut avec l'option 'd'. setfacl -m d:g:testacl:rwx aclDossier

Un petit coup de getfacl plus tard

# file: aclDossier/
# owner: howto
# group: users
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:testacl:rwx
default:mask::rwx
default:other::r-x

Si maintenant nous créons un dossier dans aclDossier. mkdir aclDossier/db getfacl aclDossier/db ///

  1. file: aclDossier/db
  2. owner: root
  3. group: root

user::rwx group::r-x group:testacl:rwx mask::rwx other::r-x default:user::rwx default:group::r-x default:group:testacl:rwx default:mask::rwx default:other::r-x

Nous pouvons voir que les droits sur le dossier db ont hérité de celle du dossier aclDossier.

La suppression se fait avec la même commande et l'option -x Supprimer les ACL du groupe testacl sur le dossier aclDossier/db) setfacl -x g:testacl aclDossier/db

Supprimer tous les ACL sur un dossier setfacl -b aclDossier

Lors de la copie de dossier, les ACL ne sont pas copier automatiquement, il faut préciser l'argument à la commande "cp" cp -ra aclDossier /sauvegarde

Voilà, concernant l'introduction aux ACL sous linux.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/21

Fil des commentaires de ce billet

Page top