I. Introduction▲
Les ACL sous AIX ne sont pas Posix, IBM ayant fait le choix de développer un système particulier pour leur UNIX.
Cet article va nous présenter l'utilisation des ACL IBM. Pour ceux n'ayant pas de connaissances dans les ACL Posix, je vous propose de lire l'article suivant :Gestion des droits de fichiers : générique et ACL
II. Les outils▲
Trois outils s'offrent à nous :
acledit : permet d'éditer les ACL d'un fichier (un répertoire n'étant qu'un fichier particulier, nous n'utiliserons que le terme fichier) ;
aclget : permet de voir les ACL d'un fichier ;
aclput : permet d'insérer des ACL dans un fichier.
Pour l'utilisation de acledit, un éditeur de texte est requis. je vous propose donc de positionner la variable EDITOR comme suit :
export EDITOR=/bin/vi
J'utilise vi par habitude, mais rien ne vous empêche d'utiliser un autre éditeur !
III. Édition d'un ACL▲
Nous utiliserons l'utilisateur « moi ». Pour éditer un ACL, il vous suffit de lancer la commande acledit.
acledit mon_fichier
Nous rentrons dans vi et observons :
attributes:
base permissions
owner(moi): rw-
group(staff): r--
others: r--
extended permissions
disabled
Le fichier mon_fichier dispose des permissions de base : rwx pour le owner, group et other. Dans notre cas, moi possède les droits rw, le groupe staff le droit de lecture ainsi que le reste du monde (other). Pour rajouter des ACL, il faut tout d'abord les activer :
attributes:
base permissions
owner(moi): rw-
group(staff): r--
others: r--
extended permissions
enabled
Les permissions sont de trois ordres :
- permit : autorise à un utilisateur ou à un groupe spécifié un type d'accès au fichier ;
- deny : interdit à un utilisateur ou à un groupe spécifié un type d'accès au fichier ;
- specify : spécifie précisément un accès dans un cas bien précis.
Pour étudier correctement, ces trois types, je vous propose simplement de prendre l'exemple du man
attributes: SUID
base permissions:
owner (frank): rw-
group (system): r-x
others : ---
extended permissions:
enabled
permit rw- u:dhs
deny r-- u:chas, g:system
specify r-- u:john, g:gateway, g:mail
permit rw- g:account, g:finance
Allons-y au scalpel.
Première ligne : le SUID est positionné. Ensuite viennent les trois attributs que nous connaissons tous : Owner, Group et Others.
Maintenant, analysons les quatre lignes d'ACL :
permit rw- u:dhs
On rajoute à l'utilisateur dhs le droit d'écriture et de lecture
deny r-- u:chas, g:system
On supprime à l'utilisateur chas le droit de lecture sur le fichier tant qu'il est membre du groupe system
specify r-- u:john, g:gateway, g:mail
Le cas de spécify est un peu spécial. On donne exactement un droit à quelqu'un. Par exemple ici, John tant qu'il est dans le groupe gateway et mail n'a que le droit de lecture. Même s'il fait partie du groupe system, il n'aura pas le droit en écriture (droit que possède ce groupe).
Les droits peuvent vite devenir clairement incompréhensibles, donc prenez toujours garde à faire quelque chose de simple.
IV. Réplication et configuration de masse▲
Il est difficile de gérer les droits d'un ensemble de fichiers. En tant qu'administrateur système, je n'ai pas envie de faire 350 acledit pour rajouter à chaque fois les mêmes lignes. Heureusement, AIX pense à nous.
En utilisant la commande aclget, on voit simplement le droit de fichier. Cette commande peut être redirigée dans un fichier.
-bash-3.00$ aclget mon_fichier > acl_fichier
-bash-3.00$ more acl_fichier
attributes:
base permissions
owner(moi): rw-
group(staff): r--
others: r--
extended permissions
enabled
permit rw- u:ftptest
Pour intégrer ces droits à un autre fichier :
-bash-3.00$ touch fichier_s
-bash-3.00$ aclput -i acl_fichier fichier_s
-bash-3.00$ acl
acledit aclget aclput
-bash-3.00$ aclget fichier_s
attributes:
base permissions
owner(jguy): rw-
group(staff): r--
others: r--
extended permissions
enabled
permit rw- u:ftptest
Il est donc facile ensuite d'intégrer cette commande aclput dans une requête find pour ajouter un modèle d'ACL sur un ensemble de fichiers.
V. Conclusion▲
Même si les ACL d'AIX ne sont pas POSIX, personne ne peut nier leur facilité et leur puissance. Je ne peux pas conclure sans vous mettre en garde contre la gestion ACL et des droits de fichiers en général ! Une faute, et un service peut ne plus fonctionner ou votre sécurité devient compromise !