Mise en place des ACL sur une Debian Testing
But de ce document
Ce document me sert de mémo pour la mise en place des ACL sur une Debian Testing. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.
Je rappelle que les ACL (Listes de contrôles d’accès), permettent d’étendre les droits d’accès des fichiers sous Linux pour les rendre aussi complets que ceux du système de fichier NTFS de Microsoft. Par exemple, avec les ACL, il est possible d’autoriser plusieurs groupes avec un accès en lecture/écriture et d’autres groupes (ou utilisateurs) avec un accès en lecture seule. Le support des ACL est particulièrement intéressant lors de la mise en place d’un serveur SAMBA.
Pré-requis
Avoir installé une Debian de Base :
Avoir installé le noyau 2.6 pour avoir nativement le support des ACL ou avoir un noyau 2.4 supportant les ACL.
Vérifier que le noyau supporte correctement les ACL
Les logs de votre noyau :
cat /boot/config-2.6.8-1-386 | grep _ACL
Doivent donner le résultat ci-dessous :
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
Installation des ACL
Paquet à installer :
apt-get install acl
Activation du support des ACL sur une partition (ext3)
Par défaut le noyau 2.6, supporte les ACL sur les systèmes de fichiers suivants :ext2, ext3, jfs, xfs,...
Si la partition (ex : hda6) est déjà montée, il faut utiliser la commande suivante :
mount -o remount,acl /dev/hda6
Si la partition n’est pas encore montée ou pour la monter automatiquement au démarrage du système, il faut modifier « /etc/fstab » et ajouter « acl » dans la liste des options :
/dev/hda6 / ext3 {{acl}},defaults,errors=remount-ro 0 1
Consulter et modifier les ACL
Pour manipuler les acl sous Linux, le paquet « acl », fournit les deux commandes « getfacl » et « setfacl ».
Consulter les ACL du fichier test.acl :
getfacl test.acl
Ajouter l’utilisateur (u=user) tony avec un accès en écriture (w) sur le fichier test.acl
setfacl -m u:tony:w test.acl
Ajouter le group (g=group) root avec un accès en lecture (r) sur le fichier test.acl
setfacl -m g:root:w test.acl
Ajouter tous les utilisateurs (o=others) avec un accès en lecture (r) sur le fichier test.acl
setfacl -m o::r test.acl
Mettre par défaut (d) le groupe pglinux en écriture pour les nouveaux fichiers de « TestDir »
setfacl -m d:g:pglinux:w TestDir
Supprimer toutes les acl du fichier test.acl :
setfacl -b test.acl
Supprimer récursivement toutes les acl du dossiers TestDir et de tous les fichiers qu’il contient :
setfacl -b -R TestDir
Lors de l’affichage détaillé des fichiers avec un « ls -l », le signe + à la fin des droits, indique que le fichier contient une ACL :
-rw-rwxr-x+ 1 root root 0 2004-12-14 14:37 test.acl
Remarque : La modification ou la consultation des ACL, peut se faire en ligne de commande sous Linux ou graphiquement depuis un poste Windows, si le dossier est partagé via Samba.
Sauvegarde des fichiers avec les ACL
Le programme « star », permet de faire des sauvegardes en conservant les ACL :
apt-get install star
Liens pour avoir plus d’informations
J’ai trouvé cet article particulièrement bien écrit sur le sujet et surtout assez récent :
Ne pas oublier non plus, la consultation des pages de man : setfacl, getfact et acl.
Historique des modifications
Version | Date | Commentaire |
---|---|---|
0.1 | 17/12/04 | Création par Tony GALMICHE |
0.2 | 20/12/04 | Ajout de nouveaux exemples et chapitre « Sauvegarde des fichiers avec les ACL » |
0.21 | 10/01/05 | Correction suite à remarque de Gnunux |
0.22 | 17/01/05 | Suppression du sommaire |
0.3 | 07/02/05 | Ajout exemple utilisation des ACL suite à remarque sur le forum |
Commentaires
Sauvegarde ACL depuis windows ? Migration de fichier depuis win
J’ai essayé de copier les fichier de windows à samba (depuis windows) mais les ACL sont alors perdues... comment faire ?
Du coup je me pose aussi la question pour les sauvegardes, vu que le serveur de sauvegarde est une machine windows avec backup exec...
(
J’ai fini par réussir à installer samba avec les acl...
Il manquait le parametre security=domain
et j’avais joint le domaine avec l’utilisateur Administator, alors que visiblement il est nécessaire d’utiliser root ?
)
)
> Mise en place des ACL sur une Debian Testing
C’est la paramètre « winbind separator » qui défini le séparateur.
J’ai utilisé le \, car c’est ce caractère qui est utilisé sous les postes Windows. Mais ça fonctionne également avec @ et + et sûrement avec d’autres caractères.
> Mise en place des ACL sur une Debian Testing
Dans 95% des docs que j’ai trouvé y’avais comme separateur le "+", dans la doc coagule y’avais le "\"... j’ai essayé les deux, mais le problème viens d’ailleurs
La ligne indique donc l’utilisateur Administrateur du Domaine :
NT-Dom\Administrator avec
windbind separator = \
> Mise en place des ACL sur une Debian Testing
dans la ligne "Admin useres = NT-DOM+Administrator"
tu veux faire quoi ???
mettre le group NT-DOM admin et l utilisateur Administrator aussi ???
si c’est ca je crois que tu as oublie de mettre "@" pour dire que nt-dom etait un groupe
et tu peux enlever le + (c est comme ca sur ma mandrake, donc je pense que pour debian ca doit etre pareil )
> Mise en place des ACL sur une Debian Testing
C’est expliqué très succinctement dans le but du document mais j’ai ajouté un exemple pour mieux comprendre.
Merci pour la remarque.
> Mise en place des ACL sur une Debian Testing
Bonjour,
Vous ne définissez pas ce que sont les ACL et ce qu’ils peuvent apporter.
Merci.
> Mise en place des ACL sur une Debian Testing
Merci pour ce Howto,
La mise en place des acl a bien marché pour moi sur Sarge. Le seul problem est que je voudrais faire marcher les acl avec windows/samba... J’ai lu quelque part qu’il fallait mettre une ligne dans smb.conf :
Admin useres = NT-DOM+Administrator
Mais ca ne marche pas, je recois un message d’erreur comme quoi je n’ai pas les droits de changer les droits des fichiers...
(quand je le fais sur sarge en command line ca marche)
De mettre manuellement l’administrateur du domaine comme owner poserait probablement probleme à linux, il me faut donc réussir à faire marcher le parametre "admin users"