Une fonctionnalité très utile de Linux est les « listes de contrôle d’accès » qui contrôlent l’accès aux fichiers et aux répertoires. Voici comment fonctionnent les listes de contrôle d’accès pour contrôler les autorisations de fichiers sous Linux.
Noter: Pour bien comprendre le fonctionnement des listes de contrôle d’accès, nous configurons d’abord certains utilisateurs et groupes sur un système Linux fonctionnel. L’exercice suivant est effectué sur une machine virtuelle exécutant le système d’exploitation Kali. L’utilisateur root a le pouvoir d’ajouter de nouveaux utilisateurs au système et de les répartir dans des groupes.
Contenu
Création d’utilisateurs et de groupes
Tout d’abord, nous allons nous connecter en tant que root, créer des utilisateurs et les placer dans des groupes respectifs, comme indiqué dans le tableau ci-dessous. Les utilisateurs ont reçu des noms simples pour aider à mieux comprendre le concept.
Nous utiliserons la commande adduser pour ajouter de nouveaux utilisateurs au système.
La commande id affichera les détails de l’utilisateur nouvellement créé. Il affichera l’identifiant de l’utilisateur (uid), l’identifiant du groupe (gid) et le nom du groupe (groups). L’utilisateur, lors de sa création, est automatiquement ajouté à un groupe portant le même nom que le nom d’utilisateur. Cet utilisateur serait le seul membre du groupe.
De même, les utilisateurs « john2 » et « john3 » sont également créés.
Une fois les trois utilisateurs créés, utilisez la commande id pour afficher les identifiants d’utilisateur et de groupe respectifs.
Nous pouvons voir que les trois utilisateurs sont dans leurs propres groupes – 1000, 1001 et 1002. Selon le tableau ci-dessus, nous voulons que les trois utilisateurs soient dans le même groupe : johns. Puisqu’un tel groupe n’existe pas sur le système actuellement, nous allons le créer avec la commande groupadd :
Le nouvel ID de groupe est spécifié comme 5000. Si le commutateur -g est ignoré, le système choisira automatiquement un ID de groupe. Le nom du nouveau groupe est « johns ». Maintenant, les trois utilisateurs – « john1 », « john2 » et « john3 » – doivent être ajoutés en tant que membres de ce groupe. Nous utiliserons la commande usermod pour cette tâche.
usermod ajoute l’utilisateur « user_name » au groupe « group_name ». La figure suivante affiche d’abord l’uid et le gid pour « john1 » avant le changement de groupe. Une fois la commande usermod exécutée avec succès, « john1 » est ajouté au groupe « johns » avec gid 5000.
Le même processus est effectué pour les utilisateurs « john2 » et « john3 ».
Enfin, les détails des trois utilisateurs du groupe « johns » peuvent être consultés à l’aide de la commande id.
Nous avons réussi à créer trois utilisateurs et les avons ajoutés au même groupe.
De même, les utilisateurs « jane1 » et « jane2 » sont créés et ajoutés au groupe « janes » avec le gid 6000. Leurs détails peuvent être consultés à l’aide de la commande id comme indiqué ci-dessous.
Quel est le besoin de listes de contrôle d’accès ?
Supposons que l’utilisateur « john1 » se connecte,
crée un nouveau fichier dans le répertoire Home,
et y ajoute du contenu.
En utilisant la commande thels, nous visualisons les métadonnées du fichier.
Les premiers caractères de la sortie, – rw – r – – r – – représentent la chaîne d’autorisation. Décortiquons-le.
Cet article est une bonne introduction aux autorisations de fichiers.
Que se passe-t-il si « john1 », étant le propriétaire du fichier, souhaite en plus accorder des autorisations d’écriture uniquement à « john2 » et « jane1 » mais persiste avec les autorisations de lecture pour « john3 » et « jane2 ? »
Une option serait de créer un nouveau groupe avec des autorisations de lecture et d’écriture pour « john1 », « john2 » et « jane1 » et un autre groupe avec uniquement des autorisations de lecture pour « john3 » et « jane2 ». Dans le cas où john1 souhaite modifier davantage les autorisations pour un membre du groupe, d’autres groupes doivent être créés. La création et la gestion de plusieurs groupes est un fardeau pour l’administrateur système.
Au lieu de cela, une « liste de contrôle d’accès » peut être créée pour un fichier qui indiquerait clairement les opérations que tout utilisateur peut effectuer sur ce fichier.
Comment créer une liste de contrôle d’accès (ACL) pour un fichier ?
Chaque fichier lors de sa création a une ACL qui lui est assignée. Pour l’utiliser efficacement, il suffit de le modifier. Seuls le propriétaire du fichier et l’utilisateur root peuvent modifier l’ACL d’un fichier.
Nous pouvons utiliser la commande getfacl pour afficher l’ACL existante :
Les lignes commençant par # sont des lignes de commentaires. Les informations réelles se trouvent dans les trois dernières lignes de sortie, ce qui est similaire à la chaîne d’autorisation obtenue précédemment. La ligne « utilisateur » fait référence aux autorisations attribuées au propriétaire du fichier « john1 ». La ligne « groupe » fait référence aux autorisations attribuées aux autres membres du groupe « clients ». Comme vous l’avez deviné, la ligne « autre » fait référence à toute autre personne en dehors du groupe.
Utilisons la commande setfacl pour modifier l’ACL existante sur le fichier.
« john2 » reçoit d’abord un accès en lecture et en écriture au fichier,
suivi de « jane1 ».
Voyons la liste de contrôle d’accès mise à jour pour « secretfile ».
Nous pouvons voir que des autorisations de lecture et d’écriture ont été attribuées à « john2 » et « jane1 ».
Vérification de l’authenticité de l’ACL
Nous pouvons voir que « john2 » est capable de lire le fichier et d’y écrire.
Les nouvelles informations saisies par « john2 » ont été ajoutées au fichier.
De même, « jane1 » obtient le même privilège : accès en lecture et accès en écriture.
Mais « john3 » dans le même groupe est incapable d’écrire dans le fichier.
« jane2 », qui appartient à l’autre catégorie, est également incapable d’écrire dans le fichier.
Conclusion
Le même processus peut également être étendu aux répertoires. Les listes de contrôle d’accès permettent à un administrateur système de gérer l’accès aux fichiers et aux répertoires de manière appropriée.
Cet article est-il utile ? Oui Non