Gestion avancée des droits Sous Linux

Passez à la vitesse supérieure grâce aux ACL

Mind And Go, Pascal DERNONCOURT
Odoo image et bloc de texte

La gestion classique des droits d'accès aux fichiers sous Linux est très limitée, mais en utilisant les ACL (Access Control List), les possibilités deviennent importantes. En effet, nous pouvons gérer des droits d'accès différents aux fichiers pour plusieurs utilisateurs et pour des groupes d'utilisateurs différents.

Pour rappel :

Dans la gestion classique des fichiers sous Linux, un fichier appartient à un utilisateur (u) et donne des droit particulier à un groupe d'utilisateur (g) et d'autres droits pour tous les autres utilisateurs (o).

Il existe 3 possibilités de droit :

  • lire le fichier,

  • écrire dans le fichier

  • exécuter le contenu 

Avec la commande ls -l il est possible de voir les droits d'accès (figure 1). Nous pouvons apercevoir ici que les fichiers appartiennent à l'utilisateur Pascal, et au groupe utilisateurs users.

Le premier caractère est un " - " indiquant que nous avons affaire à un fichier. Quand il s'agit d'un d (comme directory), cela indique que c'est un répertoire.

Les trois caractères suivants indiquent les droits du propriétaire, les trois suivants du groupe d'utilisateurs, et les trois suivants pour les autres utilisateurs.


cf. figurine 1

 

Texte Odoo et bloc d'image

Cela donne :
-rwxrwxrwx 1 pascal users   03 sep 16:42 fichier_de_démonstration_en_read_write_execute

-

rwx

rwx

rwx

1

pascal

users

0

3 sep 16:42

fichier_de_démonstration_en_read_write_execute










Nom du fichier









Date et heure de la dernière modification








 Taille du fichier







Nom du groupe d'utilisateurs






Nom du propriétaire





Nombre de lien




Droit en r pour read, w pour write, x pour execute pour tous les utilisateurs



Droit en r pour read, w pour write, x pour execute pour les utilisateurs du groupe (users)


Droit en r pour read, w pour write, x pour execute pour le proprétaire (pascal)

Pour indiquer que c'est un fichier (ce serait d comme directory pour un répertoire)

Pour changer le propriétaire et le groupe d'utilisateurs, nous utilisons la commande  chown   


cf. figurine 2

 

Texte Odoo et bloc d'image
Odoo image et bloc de texte





Pour changer les droits d'accès aux fichiers, nous utilisons la commande  chmod 

cf. figure 3


Utiliser les ACL

 

 

Les ACL (Access Control List) fonctionnent sur le même principe que la gestion standard des droit d'accès sous Linux. Cela ressemble beaucoup à la commande chmod (vue précédemment). Ils vont nous permettre de rajouter des utilisateurs avec des droits d'accès différents du propriétaire ainsi que des groupes d'utilisateurs ayant chacun ses propres droits d’accès au fichier.

Deux commandes à connaître :  setfacl  et  getfacl  .

La première setfacl est l'équivalent de la commande  chmod  

Par exemple, en passant la commande :

 # setfacl -Rm group:groupedupond:r /home/utilisateur1 

Nous attribuons des droits d'accès aux utilisateurs faisant partie du groupe groupedupond pour le répertoire /home/utilisateur1 et les fichiers en dessous (ici le r donne les droits en read only).

Explication :

setfacl pour attribuer les droits, R pour recurcive, m pour modifier l'ACL, group pour indiquer les groupes concernés (ici groupedupond), pour donner les droits en read, suivi du répertoire concerné (comme pour chmod il est possible de mettre w et x).

cf. figure 4 

Texte Odoo et bloc d'image
Odoo image et bloc de texte


Remarque :

Comme pour chmod, mettre le répertoire en x pour pouvoir y accéder. En effet, le x pour les répertoires ne veut pas signifier exécutable, cela n'aurait aucun sens qu'un répertoire soit exécutable. Il indique simplement que l'on peut accéder aux fichier qu'il contient.

Pour cela, exécuter la commande suivante :

 # setfacl -m group:groupedupond:r-x /home/utilisateur1 

cf. figure 5

 

La seconde getfacl nous renseigne sur les ACL attribués aux fichiers.

La commande classique ls va seulement nous indiquer par un + que des ACL ont été mises en place. Pour connaître le contenu de celle-ci, voici la commande à passer :

 # getfacl /home/utilisateur1/fichier_de_demonstration 

Vous pouvez voir le résultat dans la figure 4 et 5.

Texte Odoo et bloc d'image


Stratégie mise en place chez Mind & Go

Nous utilisons les ACL afin de limiter les droits d'accès aux utilisateurs en fonction de leur niveau d'habilitation. Ainsi, nous avons créé des groupes de permissions différents. Ils nous permettent de gérer facilement les accès aux fichiers.

Par exemple, nous avons créé un groupe d'utilisateurs pour des intervenants extérieurs (audit), nécessitant une consultation en lecture sans possibilité d'écriture. Nous donnons par l'intermédiaire des ACL l'accès en read only aux utilisateurs de ce groupe pour les fichiers les concernant.

Les ACL vous permettent une gestion fine et précise des droits d'accès des fichiers. À vous de mettre en place la stratégie adaptée à votre environnement.