Skip to Content

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 :

  •  cf mon autre document sur ce sujet : http://www.coagul.org/article.php3 ?id_article=158

    Avoir installé le noyau 2.6 pour avoir nativement le support des ACL ou avoir un noyau 2.4 supportant les ACL.

  •  cf mon autre document sur ce sujet.

    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 :

  •  http://www.linuxfrench.net/article.php3 ?id_article=1463

    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"