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édentes Révision précédente
Prochaine révision
Révision précédente
acl [Le 21/12/2009, 09:17]
nesthib merci de la correction Canigou 66 mais le "n'…que" était correct ;)
acl [Le 14/06/2024, 17:21] (Version actuelle)
geole [En graphique]
Ligne 5: Ligne 5:
 ====== Les Access Control List : Gestion avancée des droits sous linux ====== ====== Les Access Control List : Gestion avancée des droits sous linux ======
  
-Par défaut, la gestion des [[:droits]] sous linux est relativement basique (bien que souvent suffisante). +Par défaut, la gestion des [[:droits]] sous Linux est relativement basique (bien que souvent suffisante). 
-En effet, il n'est possible de permettre ou d'​interdire la lecture, l'​écriture et l'​exécution de fichiers que pour trois catégories d'​utilisateurs : le propriétaire du fichier, le groupe ​auquel appartient le propriétaire ​et le reste du monde. Cette gestion des droits permet de configurer les accès aux fichiers dans la plupart des situations simples mais peut s'​avérer limitée, par exemple, dans un contexte où plusieurs utilisateurs doivent accéder à une ressource partagée alors qu'ils n'ont pas de groupe ​commun. +En effet, il n'est possible de permettre ou d'​interdire la lecture, l'​écriture et l'​exécution de fichiers que pour trois catégories d'​utilisateurs : le propriétaire du fichier, ​l'​ensemble des utilisateurs inscrits dans le groupe 
- +éponyme relatif à l'​utilisateur ​et le reste du monde. Cette gestion des droits permet de configurer les accès aux fichiers dans la plupart des situations simples mais peut s'​avérer limitée, par exemple, dans un contexte où plusieurs utilisateurs doivent accéder à une ressource partagée alors que ni l'un ni l'autre ne sont réciproquement inscrits dans le groupe de l'autre utilisateur.
-Les ACL permettent ​de pallier ce manque grâce à une gestion avancée des droits. +
-Ainsi, il devient possible d'autoriser un utilisateur ​tiers à effectuer des opérations sur un fichier (dossier) sans autoriser tout un groupe ou tout le reste du mondeVoir les exemples pour plus d'​informations. +
  
 +Les ACL permettent de pallier cette déficience de sorte qu'il devient possible d'​autoriser un utilisateur tiers à effectuer des opérations sur un fichier (dossier) sans autoriser tout un groupe ou tout le reste du monde. Voir les exemples pour plus d'​informations.
 ===== Activation ===== ===== Activation =====
  
 Les ACL ne sont nativement pas activées sur Ubuntu mais le noyau les prend en charge. Le paquet [[apt://​acl]] doit normalement être déjà installé. Les ACL ne sont nativement pas activées sur Ubuntu mais le noyau les prend en charge. Le paquet [[apt://​acl]] doit normalement être déjà installé.
  
-La commande <​code>​grep ACL /​boot/​config-[version du noyau]</​code>​ permet de vérifier si le noyau prend en charge les ACL. Elle doit retourner '​y'​ pour le type système de fichier qui nous intéresse.+La commande <​code>​grep ACL /​boot/​config-$(uname -r)</​code>​ permet de vérifier si le noyau prend en charge les ACL. Elle doit retourner '​y'​ pour le type système de fichier qui nous intéresse.
  
-Il faut maintenant [[:​mount_fstab|préciser lors du montage de la partition]] que l'on veut utiliser les ACL.+Il faut maintenant [[:​mount_fstab|préciser lors du montage de la partition]] que l'on veut utiliser les ACL. Si la partition concernée par le partage est de type ext4, la suite est inutile (voir la note à la fin de cette section).
  
 Soit en montant la partition avec l'​option acl Soit en montant la partition avec l'​option acl
 <​code>​mount -t ext3 -o defaults,​acl /dev/sdaX/ /​mount/​folder/</​code>​ <​code>​mount -t ext3 -o defaults,​acl /dev/sdaX/ /​mount/​folder/</​code>​
  
-soit en inscrivant l'​option dans le fichier fstab +soit en inscrivant l'​option dans le fichier ​[[mount_fstab|fstab]] 
-<​code>​UUID=xxxxxxxxx /               ext4    ​[autres options],​acl 0       ​1</​code>​+<​code>​UUID=xxxxxxxxx /               ext3    ​[autres options],​acl 0       ​1</​code>​
 puis en remontant la partition (si l'on ne veut pas redémarrer) puis en remontant la partition (si l'on ne veut pas redémarrer)
 <​code>​mount -a -o remount /​dev/​sdax</​code>​ <​code>​mount -a -o remount /​dev/​sdax</​code>​
  
 +(note) : si la partition concernée par le partage est de type ext4 le support des acl est actif par défaut: l'​option de montage "​acl"​ a été remplacée par "​noacl",​ qui devient donc celle à utiliser si on veut... désactiver le support des acl.
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 37: Ligne 36:
 <​code>​setfacl -m u::rw fichier</​code>​ <​code>​setfacl -m u::rw fichier</​code>​
  
-==== En graphique ==== +Un fichier dont les ACL auront été spécifiés verra s'​ajouter un **+** à la fin de la liste des droits ​avec la commande ​: 
-Une fois compris ​les concepts des ACL, il est possible de gérer les changements ​de droits ​en graphique grâce au paquet [[apt://eiciel]].+<​code>​ls -l fichier</code>
  
 +**getfacl** permet d'​afficher l'​ensemble des permissions définies :
 +<​code>​$ getfacl fichier
 +# file: fichier
 +# owner: utilisateur
 +# group: utilisateur
 +user::rwx
 +user:​utilisateur1:​rw-
 +user:​utilisateur2:​r--
 +group::r--
 +mask::rwx
 +other::---
 +</​code>​
 +ici on peut voir que le propriétaire du fichier (utilisateur) a les droits rwx, utilisateur1 rw- et utilisateur2 r--, les autres utilisateurs n'ont aucun droit
 +
 +**getfacl --omit-header ...** supprime de l'​affichage les 3 premières lignes, le nom du fichier, le propriétaire et le groupe.
 +<​code>​$ mkdir dir
 +$ ls -ld dir
 +drwxr-xr-x 2 root root 4096 Mar 12 13:54 dir
 +$ getfacl --omit-header dir
 +user::rwx
 +group::r-x
 +other::​r-x</​code>​
 +Sans acl, la commande getfacl donne les mêmes informations que ls -ld
 +
 +**setfacl -d ...** spécifie des acl par défaut, qui ne peuvent s'​appliquer qu'aux dossiers.
 +<​code>​$ setfacl -m user:​fdsadmin:​rwx dir
 +$ setfacl -d -m group:​nasgrp:​r-x dir
 +$ getfacl --omit-header dir
 +user::rwx
 +user:​fdsadmin:​rwx
 +group::r-x
 +mask::rwx
 +other::r-x
 +default:​user::​rwx
 +default:​group::​r-x
 +default:​group:​nasgrp:​r-x
 +default:​mask::​r-x
 +default:​other::​r-x</​code>​
 +
 +**getfacl --access --default ...** L'​affichage précédent peut se décomposer en droits d'​accès fichier, et en droits par défaut :
 +<​code>​$ getfacl --omit-header --access dir
 +user::rwx
 +user:​fdsadmin:​rwx
 +group::r-x
 +mask::rwx
 +other::r-x
 +
 +$ getfacl --omit-header --default dir
 +user::rwx
 +group::r-x
 +group:​nasgrp:​r-x
 +mask::r-x
 +other::​r-x</​code>​
 +
 +Les ** permissions effectives ** sont affichées individuellement pour les utilisateurs ou les groupes qui subissent un droit de hiérarchie supérieure différent :
 +<​code>​$ chmod g-w dir
 +$ ls -ld dir
 +drwxr-xr-x+ 2 root root 4096 Mar 12 13:54 dir
 +$ getfacl --omit-header dir
 +user::rwx
 +user:​fdsadmin:​rwx ​              #​effective:​r-x
 +group::r-x
 +mask::r-x
 +other::r-x
 +default:​user::​rwx
 +default:​group::​r-x
 +default:​group:​nasgrp:​r-x
 +default:​mask::​r-x
 +default:​other::​r-x</​code>​ Ici l'​utilisateur fdsadmin qui avait pourtant les droits rwx s'est vu amputer du droit w supprimé au groupe.
  
 ==== Exemples ==== ==== Exemples ====
 === autoriser à "​utilisateur"​ la lecture et l'​écriture sur "​fichier"​ === === autoriser à "​utilisateur"​ la lecture et l'​écriture sur "​fichier"​ ===
 +<​code>​setfacl -m user:​utilisateur:​rw fichier</​code>​
 <​code>​setfacl -m u:​utilisateur:​rw fichier</​code>​ <​code>​setfacl -m u:​utilisateur:​rw fichier</​code>​
 +La même commande est disponible pour les groupes. Il suffit de remplacer **u**/​**user** par **g**/​**group**
 +=== modifier les permissions de plusieurs utilisateurs/​groupes sur "​fichier"​ en même temps ===
 +<​code>​setfacl -m user:​utilisateur:​rwx,​user:​utilisateur2:​r,​group:​groupe:​rw fichier</​code>​
 === définir l'​accès en lecture par défaut pour "​utilisateur"​ pour les nouveaux fichiers créés dans "​dossier"​ === === définir l'​accès en lecture par défaut pour "​utilisateur"​ pour les nouveaux fichiers créés dans "​dossier"​ ===
-<​code>​setfacl -m d:​u:​utilisateur:​rw dossier</​code>​ +<​code>​setfacl -m d:​u:​utilisateur:​dossier</​code>​ 
 +=== supprimer les ACL pour un utilisateur sur une arborescence === 
 +<​code>​setfacl -R -x user::​nom_user repertoire_base_arborescence</​code>​ 
 +=== supprimer les ACL sur un fichier/​dossier === 
 +<​code>​setfacl -b fichier</​code>​
  
 +=== En graphique ====
 +Une fois compris les concepts des ACL, il est possible de gérer les changements de droits en graphique grâce au paquet [[apt://​eiciel]].
 +{{ :​eiciel:​eiciel.png?​600 |}}=
 ---- ----
  
 //​Contributeur : nesthib// //​Contributeur : nesthib//
  • acl.1261383470.txt.gz
  • Dernière modification: Le 18/04/2011, 14:41
  • (modification externe)