Il existe deux types d’ACL : access ACL et default ACL
- access ACL : une liste de controle d’acces appliqué à un fichier ou à un répertoire
- default ACL : une liste de controle d’accès appliqué uniquement aux répertoires. Si un fichier dans un repertoire n’a pas d’ACL alors le default ACL sur ce répertoire sera appliqué sur le fichier.
Les ACL peuvent êtres configurés par user ou par groupe ou par mask (ensemble des permissions du groupe et utilisateur propriétaire)
Deux utilitaires pour gérer les ACL :
- getfacl : visualiser les ACLs mis en place
- setfacl: ajouter, modifier et supprimer un ACL
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
getfacl => visulise les ACL appliqués sur fic
getfacl => visualise les ACL sur rep. Les default ACL sont préfixés par "default"
setfacl -m => Ajoute un ACL à un fichier ou un répertoire à l'aide de l'option -m
:
u:: => ajoute un ACL pour un utilisateur
g:: => ajouite un ACL pour un groupe
=> une combinaison de r (read) , w (write) et x (execute)
setfacl -x => supprime l'ACL sur le fichier ou le répertoire
setfacl -m d:: => configure le default ACL sur le répertoire
[/pastacode]
Exemples
- configurer le default ACL sur rep1 avec la permission “rw” à admin :
[pastacode lang=”c” message=”” highlight=”” provider=”manual”]
root@localhost # : setfacl -m d:admin:rw rep1
[/pastacode]
- Afficher le default ACL sur rep1 :
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
root@localhost # : getfacl rep1/
# file: rep1/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:admin:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
[/pastacode]
- Ajouter un ACL au ficher fic avec la permission “rw” à admin et “r” pour admsrv
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
root@localhost # : setfacl -m u:admin:rw fic1
setfacl -m u:admsrv:r fic1
[/pastacode]
- Visualiser les ACLs pour fic1
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
root@localhost # : getfacl fic1
# file: fic1
# owner: root
# group: root
user::rw-
user:admsrv:r--
user:admin:rw-
group::r--
mask::rw-
other::r--
[/pastacode]