Recherche de site Web

Attribuer un accès en lecture/écriture à un utilisateur sur un répertoire spécifique sous Linux


Dans un article précédent, nous vous avons montré comment créer un répertoire partagé sous Linux. Ici, nous allons décrire comment donner un accès en lecture/écriture à un utilisateur sur un répertoire spécifique sous Linux.

Il existe deux méthodes possibles pour ce faire : la première consiste à utiliser des ACL (Access Control Lists) et la seconde consiste à créer des groupes d'utilisateurs pour gérer les autorisations sur les fichiers, comme expliqué ci-dessous.

Pour les besoins de ce didacticiel, nous utiliserons la configuration suivante.

Operating system: CentOS 7
Test directory: /shares/project1/reports 
Test user: tecmint
Filesystem type: Ext4

Assurez-vous que toutes les commandes sont exécutées en tant qu'utilisateur root ou utilisez la commande sudo avec des privilèges équivalents.

Commençons par créer le répertoire appelé reports à l'aide de la commande mkdir :

mkdir -p /shares/project1/reports   				

Utilisation d'ACL pour accorder un accès en lecture/écriture à l'utilisateur sur l'annuaire

Important : pour utiliser cette méthode, assurez-vous que votre type de système de fichiers Linux (tel que Ext3 et Ext4, NTFS, BTRFS) prend en charge les ACL.

1. Tout d'abord, vérifiez le type de système de fichiers actuel sur votre système, et également si le noyau prend en charge l'ACL comme suit :

df -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep -i acl /boot/config*

D'après la capture d'écran ci-dessous, le type de système de fichiers est Ext4 et le noyau prend en charge les ACL POSIX comme indiqué par l'option CONFIG_EXT4_FS_POSIX_ACL=y.

2. Ensuite, vérifiez si le système de fichiers (partition) est monté avec l'option ACL ou non :

tune2fs -l /dev/sda1 | grep acl

À partir du résultat ci-dessus, nous pouvons voir que l'option de montage par défaut prend déjà en charge ACL. S'il n'est pas activé, vous pouvez l'activer pour la partition particulière (/dev/sda3 dans ce cas) :

mount -o remount,acl /
tune2fs -o acl /dev/sda3

3. Il est maintenant temps d'attribuer un accès en lecture/écriture à un utilisateur tecmint à un répertoire spécifique appelé reports en exécutant les commandes suivantes.

getfacl /shares/project1/reports       		  # Check the default ACL settings for the directory 
setfacl -m user:tecmint:rw /shares/project1/reports     # Give rw access to user tecmint 
getfacl /shares/project1/reports    			  # Check new ACL settings for the directory

Dans la capture d'écran ci-dessus, l'utilisateur tecmint dispose désormais d'autorisations de lecture/écriture (rw) sur le répertoire /shares/project1/reports, comme le montre la sortie du deuxième commande getfacl.

Pour plus d’informations sur les listes ACL, consultez nos guides suivants.

  1. Comment utiliser les ACL (listes de contrôle d'accès) pour configurer les quotas de disque pour les utilisateurs/groupes
  2. Comment utiliser les ACL (listes de contrôle d'accès) pour monter des partages réseau

Voyons maintenant la deuxième méthode d'attribution d'un accès en lecture/écriture à un répertoire.

Utilisation de groupes pour accorder un accès en lecture/écriture à l'utilisateur sur l'annuaire

1. Si l'utilisateur dispose déjà d'un groupe d'utilisateurs par défaut (normalement avec le même nom que le nom d'utilisateur), changez simplement le propriétaire du groupe du répertoire.

chgrp tecmint /shares/project1/reports

Vous pouvez également créer un nouveau groupe pour plusieurs utilisateurs (qui recevront des autorisations de lecture/écriture sur un répertoire spécifique), comme suit. Cependant, cela créera un répertoire partagé :

groupadd projects

2. Ajoutez ensuite l'utilisateur tecmint au groupe projets comme suit :

usermod -aG projects tecmint	    # add user to projects
groups tecmint	            # check users groups

3. Remplacez le groupe propriétaire du répertoire par projets :

chgrp	projects /shares/project1/reports

4. Définissez maintenant l'accès en lecture/écriture pour les membres du groupe :

chmod -R 0760 /shares/projects/reports
ls  -l /shares/projects/	    #check new permissions

C'est ça! Dans ce tutoriel, nous vous avons montré comment accorder un accès en lecture/écriture à un utilisateur sur un répertoire spécifique sous Linux. En cas de problème, demandez via la section commentaires ci-dessous.