Outils pour utilisateurs

Outils du site


tuto:linux:acl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tuto:linux:acl [2009/03/15 11:30] – édition externe 127.0.0.1tuto:linux:acl [2009/05/23 23:25] (Version actuelle) root
Ligne 1: Ligne 1:
 +====== ACL ======
 +
 +
 Si l’on veut donner des droits à un utilisateur ou un groupe particulier, on pourra définir une ACL (« Access Control List ») sur le fichier ou le répertoire, et affecter les droits unitairement. Ceci se fait simplement avec la commande setfacl, de la manière suivante : Si l’on veut donner des droits à un utilisateur ou un groupe particulier, on pourra définir une ACL (« Access Control List ») sur le fichier ou le répertoire, et affecter les droits unitairement. Ceci se fait simplement avec la commande setfacl, de la manière suivante :
   setfacl -m ACL fichier   setfacl -m ACL fichier
Ligne 39: Ligne 42:
 peut donc provoquer la perte de son ACL, modifiant ainsi les droits des utilisateurs sur ce fichier. Les ACLs doivent donc être utilisées avec parcimonie et leur manipulation entourée du plus grand soin. peut donc provoquer la perte de son ACL, modifiant ainsi les droits des utilisateurs sur ce fichier. Les ACLs doivent donc être utilisées avec parcimonie et leur manipulation entourée du plus grand soin.
  
 +
 +====== ls, cp et mv ======
 +
 +Ces commandes doivent pouvoir lister, copier et déplacer les ACL en même temps que les fichiers. Pour les deux premières commandes, il faut préciser explicitement que l'on veut afficher/conserver les droits (ce qui est aussi le cas quand on ne travaille que sur les droits classiques) : ls -l, cp -a. La commande mv, quant à elle, préserve toujours les droits.
 +
 +Quand les droits étendus ne peuvent être conservés (déplacement ou copie vers un système de fichier qui n'est pas configuré pour les recevoir ou utilisation d'une version de cp trop ancienne), un message d'avertissement en informe l'utilisateur. Par exemple :
 +
 +  setfacl -m u:luce:rw index.php
 +  cp -a index.php /mnt/vfat
 +  cp: preserving permissions for `/mnt/vfat/index.php': Opération non supportée
 +
 +Noter qu'un fichier comportant une ACL qu'on veut lister par ls -l n'affiche qu'un + à la suite de ses permissions. Seule la commande getfacl, pour l'instant, permet d'avoir connaissance du détail. Par exemple :
 +
 +  setfacl -m u:khadija:rw /var/www/index.php
 +  ls -l /var/www/index.php
 +   -rw-rw----+ 1 khadija www-data 5055 2005-10-16 18:53 /var/www/index.php
 +
 +Avec -rw-rw----**+**, on sait que le fichier possède une ACL (+), sans en connaître les constituants. 
 +
 +====== Sauvegarde des données ======
 +
 +Sauvegarder des données dotées d'ACL nécessite :
 +
 +    * l'utilisation d'un système de fichiers pour le stockage qui soit compatible ;
 +    * et l'utilisation d'un logiciel de sauvegarde qui soit tout autant compatible. 
 +
 +À titre indicatif, tar et cpio et rsync ne le sont pas (à moins d'être patchés), star et pax le sont. 
 +
 +Pour contourner le problème de sauvegarde, il est possible d'écrire toutes les ACL dans un fichier qui servira de base à une restauration ultérieure : 
 +  getfacl --skip-base -R /dossier/dossier/ > fichier 
 +récupère les informations récursivement et les inscrit dans un simple fichier. La restauration se fait au moyen de 
 +  setfacl --restore=fichier
 +Il faut, pour qu'elle fonctionne, se placer à la racine contenant l'arborescence, en raison de la notation relative des chemins (d'où le message Removing leading '/' from absolute path names que l'on peut souvent lire en tapant des commandes avec ces programmes). Le chemin d'un répertoire /tmp/test est enregistré comme tmp/test : on doit donc, pour restaurer, lancer la commande depuis la racine de /tmp, c'est-à-dire /.
 +
 +Par exemple : le répertoire /tmp/test contient trois fichiers à ACL. On sauvegarde les ACL avec 
 +  getfacl --skip-base -R /tmp/test > acl.acl
 +Pour restaurer, on se place à la racine (cd /) et on lance 
 +  setfacl --restore=acl.acl
 +Si on avait lancé la commande depuis /test, setfacl aurait renvoyé les erreurs :
 +
 +  setfacl: tmp/test: Aucun fichier ou répertoire de ce type
 +  setfacl: tmp/test/a: Aucun fichier ou répertoire de ce type
 +  setfacl: tmp/test/b: Aucun fichier ou répertoire de ce type
 +  setfacl: tmp/test/c: Aucun fichier ou répertoire de ce type
tuto/linux/acl.1237116607.txt.gz · Dernière modification : 2009/05/23 21:56 (modification externe)