Listes de contrôle d'accès dans Ubuntu

Listes de contrôle d'accès dans Ubuntu
Les comptes d'utilisateurs sont créés avec un certain ensemble de privilèges prédéfinis et de droits sur les fichiers et services système. D'un autre côté, des groupes existent pour partager des fichiers et des dossiers entre les utilisateurs. En règle générale, lorsque les comptes d'utilisateurs sont créés, ils peuvent être affectés à des groupes alternatifs. Cependant, il y a des moments où vous ne voudrez peut-être pas affecter un utilisateur particulier à un groupe particulier, mais en même temps, vous devrez peut-être partager des fichiers / dossiers avec cet utilisateur spécifique. C'est là que les listes de contrôle d'accès (ACL) entrent dans l'image. Dans ce tutoriel, nous découvrirons les listes de contrôle d'accès à Ubuntu.

Listes de contrôle d'accès (ACL)

Les listes de contrôle d'accès (ACL) nous permettent de classer le contrôle d'accès. En d'autres termes, supposons que l'utilisateur Sara a besoin d'accéder à un seul dossier appartenant à Kalyani. Techniquement, nous pourrions attribuer Sara au groupe de Kalyani, mais cela signifierait que Sara aurait accès à plus que ce dont elle a besoin, et supposons en outre que Kalyani a des fichiers sensibles qu'elle ne veut pas que Sara lise, écrivez ou exécute. C'est là que les listes de contrôle d'accès ou les ACL entrent dans l'image. Nous pouvons, en théorie, gâcher les autorisations, mais les ACL nous permettent de donner des accès différents à différents utilisateurs et de donner accès sans avoir à jouer avec les autorisations de base réelles du fichier ou du dossier.

Affichage des autorisations actuelles

Nous utilisons la commande getFACL (Get File Access Control List) pour afficher les autorisations ACL actuelles.

getfacl dossier de fichiers

Supposons que je crée un dossier appelé secret avec deux sous-répertoires et 5 fichiers. Supposons en outre que je veux voir les autorisations ACL sur le dossier secret.

Secret GetFacl

Cela signifie que le propriétaire des fichiers et du dossier, Kalyani, appartenant au groupe Kalyani, a lu, écrit et exécuté des autorisations. Tout le monde, cependant, n'a aucune autorisation.

Affectif des autorisations à réglage fin des utilisateurs

Affiner les autorisations avec ACL est réalisée à l'aide de la commande setfacl. Le commutateur -M, en particulier, est utilisé pour modifier les autorisations.

setfacl -m u: nom d'utilisateur: nom de fichier d'autorisations

Le U indique que le changement est pour un utilisateur et non un groupe. Après le côlon, on rédigerait le nom d'utilisateur pour lequel l'autorisation est accordée ainsi que l'autorisation accordée. Les autorisations sont les mêmes que celles disponibles pour ChMOD: lire, écrire et exécuter. Enfin, nous écrivons le nom de fichier pour lequel l'autorisation est appliquée.

Par exemple, supposons que je souhaite accorder son accès complet à ce dossier secret à l'utilisateur Sara, alors j'écrirai:

setfacl -m u: sara: rwx secret

Maintenant, si nous nous connectons en tant que Sara, nous aurions lu, écrit et exécuté l'accès au dossier «secret». Maintenant, faites attention, je définis une autorisation 770 au répertoire initial. Cette autorisation a été conservée, mais une exception à la règle a été ajoutée à l'aide de listes de contrôle d'accès. Si j'avais un autre dossier appelé «Kali» avec la permission 770 appartenant à Kalyani, l'utilisateur Sara ne pourrait pas le toucher. En fait, il dirait «l'autorisation refusée».

De plus, un point à noter est qu'une fois que le fichier est modifié en tant que ACL, il y a un signe plus à côté lorsque vous le répertoriez. Dans ce cas, comme vous pouvez le voir, il est dit drwxrwx- + pour le dossier appelé secret. Le signe plus implique qu'il a été modifié avec ACLS.

Une fois que vous avez défini les ACL, un masque est également créé. Le masque est l'autorisation maximale qu'un utilisateur ou un groupe ACL peut potentiellement avoir sur un répertoire ou un fichier.

Affecter les groupes de réglages affinés

Tout comme attribuer une autorisation spéciale des utilisateurs, nous pouvons également attribuer des groupes à une autorisation spéciale. Cela signifie que nous pouvons conserver nos autorisations de base en tant que complément et attribuer une autorisation supplémentaire en groupe en utilisant ACL.

setfacl -m g: group_name: nom de fichier des autorisations

Ex:

setfacl -m g: John: r secret

Dans ce cas, nous donnons la permission du groupe John Read au dossier secret. Cela signifie que tous les membres du groupe John auront l'autorisation du dossier secret et seul le dossier secret. Tout le reste sera sous verrouillage et clé.

Affectation récursive

Le dossier secret a été conçu avec 3 fichiers directement et 2 sous-répertoires, chacun avec un seul fichier dedans.

Lorsque nous avons attribué les autorisations à l'utilisateur Sara et Group John, nous ne l'avons pas fait récursivement, alors vérifions actuellement les autorisations ACL des sous-répertoires (après avoir attribué les autorisations au répertoire secret).

Comme vous pouvez le voir, les autorisations ACL s'appliquent uniquement au répertoire secret et non aux sous-répertoires. Cela signifie que l'utilisateur Sara et le groupe John n'ont pas les autorisations données sur les sous-répertoires! Dans ce cas, si nous voulons donner des autorisations à l'ensemble du répertoire (y compris les sous-répertoires), nous devons faire une affectation récursive. Nous utilisons le commutateur -r pour le faire.

setfacl -r -m u: nom d'utilisateur: nom de fichier des autorisations

Ex:

setfacl -r -m u: sara: rwx secret

Suppression des autorisations affinées

Vous pouvez également souhaiter révoquer les autorisations données, et c'est tout aussi facile à faire que de les donner. Vous utilisez l'interrupteur -x au lieu du commutateur -m pour révoquer les autorisations.

Pour supprimer une entrée spécifique:

setfacl -x u: nom de fichier nom d'utilisateur
Setfacl -x G: Group_name Nom de fichier

Dans ce cas, j'aurais écrit:

setfacl -x u: Sara Secret
setfacl -x g: John Secret

Pour retirer toutes les entrées en un seul coup:

nom de fichier setfacl -b

Par exemple:

setfacl -b secret

Ceci, cependant, ne supprime pas les droits sur les sous-répertoires. Afin de supprimer les droits des sous-répertoires, vous devez utiliser la récursivité.

setfacl -r -b secret

Résumé

Tout ce que nous avons appris se résume à ceci:

Pour afficher les autorisations ACL:

nom de fichier GetFacl

Pour définir les autorisations ACL:

setfacl nom de fichier

Options:
-m, -modify modifier ACL
-x, -remove retirer l'entrée ACL
-b, -remove-tout enlever toutes les entrées ACL
-R Affectation récursive

Entrée:
U: Nom d'utilisateur: autorisation pour les utilisateurs
G: Group_name: autorisation pour les groupes

Bien que Chmod existe pour accorder des autorisations pour les fichiers et les dossiers, il n'est pas sélectif. Il ne peut pas accorder différents privilèges à différents utilisateurs. De plus, il y a des moments où l'on ne veut pas non plus ajouter de personnes aléatoires aux groupes. Les listes de contrôle ACL ou d'accès ont été inventées juste pour ce genre d'occasion. Il peut donner aux utilisateurs ou groupes spécifiques d'accéder à des fichiers et / ou des dossiers spécifiques. Dans ce tutoriel, nous avons appris à donner aux utilisateurs et aux groupes des autorisations spéciales, à attribuer des autorisations récursivement et à révoquer lesdites autorisations. Alors allez-y et affinez les autorisations sur les fichiers et les dossiers à partir de maintenant!

Codage heureux!