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
elearning:workbooks:redhat:rh124:l107 [2024/09/27 10:57] adminelearning:workbooks:redhat:rh124:l107 [2024/11/27 10:14] (Version actuelle) admin
Ligne 26: Ligne 26:
       * 2.2 - Inheritance Flag       * 2.2 - Inheritance Flag
       * 2.3 - Sticky bit       * 2.3 - Sticky bit
 +    * LAB #3 - Les Droits Unix Avancés 
 +      * 3.1 - Les ACL 
 +      * 3.2 - Les Attributs Étendus
  
 =====Présentation===== =====Présentation=====
Ligne 516: Ligne 518:
 </code> </code>
  
 +=====LAB #3 - Les Droits Unix Avancés=====
 +
 +====3.1 - Les ACL====
 +
 +Au delà des droits étendus d'Unix, Linux utilise un système d'ACL pour permettre une meilleure gestion des droits sur des fichiers.
 +
 +Pour connaître les ACL positionnés sur un fichier, il convient d'utiliser la commande **getfacl** :
 +
 +<code>
 +[root@redhat9 tmp]# getfacl /home/trainee/tux.jpg
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/tux.jpg
 +# owner: root
 +# group: root
 +user::rw-
 +group::r--
 +other::r--
 +</code>
 +
 +Pour positionner des ACL sur un fichier, il convient d'utiliser la commande **setfacl** :
 +
 +<code>
 +[root@redhat9 tmp]# setfacl --set u::rwx,g::rx,o::-,u:trainee:rw /home/trainee/tux.jpg
 +[root@redhat9 tmp]# getfacl /home/trainee/tux.jpg
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/tux.jpg
 +# owner: root
 +# group: root
 +user::rwx
 +user:trainee:rw-
 +group::r-x
 +mask::rwx
 +other::---
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Veuillez noter l'apparition de la ligne **mask**. Le mask indique les permissions maximales qui peuvent être acccordées à un utilisateur ou un groupe tiers.
 +</WRAP>
 +
 +Regardez maintenant l'effet des ACL sur un répertoire. Créez le répertoire /home/trainee/rep1 :
 +
 +<code>
 +[root@redhat9 tmp]# mkdir /home/trainee/rep1
 +</code>
 +
 +Positionnez des ACL le répertoire avec la commande **setfacl** :
 +
 +<code>
 +[root@redhat9 tmp]# setfacl --set d:u::r,d:g::-,d:o::- /home/trainee/rep1
 +</code>
 +
 +Notez l'utilisation de la lettre **d** pour indiquer une permission //par défaut//.
 +
 +Créez maintenant un fichier appelé fichier1 dans /home/trainee/rep1 :
 +
 +<code>
 +[root@redhat9 tmp]# touch /home/trainee/rep1/fichier1
 +</code>
 +
 +Utilisez la commande **getfacl** pour visualiser le résultat :
 +
 +<code>
 +[root@redhat9 tmp]# getfacl /home/trainee/rep1
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/rep1
 +# owner: root
 +# group: root
 +user::rwx
 +group::r-x
 +other::r-x
 +default:user::r--
 +default:group::---
 +default:other::---
 +
 +[root@redhat9 tmp]# getfacl /home/trainee/rep1/fichier1
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/rep1/fichier1
 +# owner: root
 +# group: root
 +user::r--
 +group::---
 +other::---
 +</code>
 +
 +Notez que le fichier créé possède les ACL positionnés sur le répertoire rep1.
 +
 +Dernièrement, les systèmes de sauvegarde classiques sous Linux ne peuvent pas sauvegarder les ACL, sauf l'outil **star**. Si vous n'utilisez pas **star**, il convient donc de sauvegarder les ACL dans un fichier grâce à la commande suivante :
 +
 +<code>
 +[root@redhat9 tmp]# cd /home/trainee/rep1
 +[root@redhat9 rep1]# getfacl -R --skip-base . > backup.acl
 +[root@redhat9 rep1]# cat backup.acl 
 +# file: .
 +# owner: root
 +# group: root
 +user::rwx
 +group::r-x
 +other::r-x
 +default:user::r--
 +default:group::---
 +default:other::---
 +</code>
 +
 +La restauration des ACL se fait avec la commande **setfacl** :
 +
 +  # setfacl --restore=backup.acl [Entrée]
 +
 +==Options des Commandes===
 +
 +Les options de la commande **getfacl** sont :
 +
 +<code>
 +[root@redhat9 tmp]# getfacl --help
 +getfacl 2.2.53 -- get file access control lists
 +Usage: getfacl [-aceEsRLPtpndvh] file ...
 +  -a,  --access           display the file access control list only
 +  -d, --default           display the default access control list only
 +  -c, --omit-header       do not display the comment header
 +  -e, --all-effective     print all effective rights
 +  -E, --no-effective      print no effective rights
 +  -s, --skip-base         skip files that only have the base entries
 +  -R, --recursive         recurse into subdirectories
 +  -L, --logical           logical walk, follow symbolic links
 +  -P, --physical          physical walk, do not follow symbolic links
 +  -t, --tabular           use tabular output format
 +  -n, --numeric           print numeric user/group identifiers
 +  -p, --absolute-names    don't strip leading '/' in pathnames
 +  -v, --version           print version and exit
 +  -h, --help              this help text
 +</code>
 +
 +Les options de la commande **setfacl** sont :
 +
 +<code>
 +[root@redhat9 tmp]# setfacl --help
 +setfacl 2.2.53 -- set file access control lists
 +Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
 +  -m, --modify=acl        modify the current ACL(s) of file(s)
 +  -M, --modify-file=file  read ACL entries to modify from file
 +  -x, --remove=acl        remove entries from the ACL(s) of file(s)
 +  -X, --remove-file=file  read ACL entries to remove from file
 +  -b, --remove-all        remove all extended ACL entries
 +  -k, --remove-default    remove the default ACL
 +      --set=acl           set the ACL of file(s), replacing the current ACL
 +      --set-file=file     read ACL entries to set from file
 +      --mask              do recalculate the effective rights mask
 +  -n, --no-mask           don't recalculate the effective rights mask
 +  -d, --default           operations apply to the default ACL
 +  -R, --recursive         recurse into subdirectories
 +  -L, --logical           logical walk, follow symbolic links
 +  -P, --physical          physical walk, do not follow symbolic links
 +      --restore=file      restore ACLs (inverse of `getfacl -R')
 +      --test              test mode (ACLs are not modified)
 +  -v, --version           print version and exit
 +  -h, --help              this help text
 +</code>
 +
 +====3.2 - Les Attributs Etendus====
 +
 +Les attributs s'ajoutent aux caractéristiques classiques d'un fichier dans un système de fichiers Ext2/Ext3/Ext4, JFS, ReiserFS, XFS et Btrfs.
 +
 +Les principaux attributs sont :
 +
 +^ Attribut ^ Description ^
 +| a | Fichier journal - uniquement l'ajout de données au fichier est permis. Le fichier ne peut pas détruit |
 +| i | Le fichier ne peut ni être modifié, ni être détruit, ni être déplacé. Le placement d'un lien sur le fichier n'est pas permis |
 +| s | Le fichier sera physiquement détruit lors de sa suppression |
 +| D | Répertoire synchrone |
 +| S | Fichier synchrone |
 +| A | La date et l'heure de dernier accès ne seront pas mises à jour |
 +
 +<WRAP center round important 60%>
 +**Important** - Un fichier synchrone et un répertoire synchrone impliquent que les modifications seront immédiatement inscrites sur disque.
 +</WRAP>
 +
 +Les commandes associées avec les attributs sont :
 +
 +^ Commande ^ description ^
 +| chattr | Modifie les attributs |
 +| lsattr | Visualise les attributs |
 +
 +Pour mieux comprendre, créez le répertoire **/root/attributs/rep** :
 +
 +<code>
 +[root@redhat9 rep1]# cd /root
 +[root@redhat9 ~]# mkdir -p attributs/rep
 +</code>
 +
 +Créez ensuite les fichier **fichier** et **rep/fichier1** :
 +
 +<code>
 +[root@redhat9 ~]# touch attributs/fichier
 +[root@redhat9 ~]# touch attributs/rep/fichier1
 +</code>
 +
 +Modifiez les attributs d'une manière récursive sur le répertoire **attributs** :
 +
 +<code>
 +[root@redhat9 ~]# chattr +i -R attributs/
 +</code>
 +
 +Visualisez les attributs de l'arborescence **attributs** :
 +
 +<code>
 +[root@redhat9 ~]# lsattr -R attributs
 +----i----------- attributs/rep
 +
 +attributs/rep:
 +----i----------- attributs/rep/fichier1
 +
 +----i----------- attributs/fichier
 +</code>
 +
 +Essayez maintenant de déplacer le fichier **fichier**. Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@redhat9 ~]# cd attributs; mv /root/attributs/fichier /root/attributs/rep/fichier
 +mv: cannot move '/root/attributs/fichier' to '/root/attributs/rep/fichier': Operation not permitted
 +</code>
  
 ----- -----
 Copyright © 2024 Hugh Norris. Copyright © 2024 Hugh Norris.
Menu