Rechercher

1.10. Gestion des ACL sur un partage SMB à l'aide de smbcacls

download PDF

L'utilitaire smbcacls permet de lister, de définir et de supprimer les ACL des fichiers et des répertoires stockés sur un partage SMB. Vous pouvez utiliser smbcacls pour gérer les ACL du système de fichiers :

  • Sur un serveur Samba local ou distant qui utilise des ACL Windows avancées ou des ACL POSIX
  • Sur Red Hat Enterprise Linux pour gérer à distance les ACL sur un partage hébergé sur Windows

1.10.1. Entrées de contrôle d'accès

Chaque entrée ACL d'un objet du système de fichiers contient des entrées de contrôle d'accès (ACE) dans le format suivant :

security_principal:access_right/inheritance_information/permissions

Exemple 1.3. Entrées de contrôle d'accès

Si le groupe AD\Domain Users dispose des autorisations Modify qui s'appliquent à This folder, subfolders, and files sous Windows, l'ACL contient l'ACE suivant :

AD\NUtilisateurs du domaine:ALLOWED/OI|CI/CHANGE

Un CAE contient les éléments suivants :

Principal responsable de la sécurité
Le principal de sécurité est l'utilisateur, le groupe ou le SID auquel s'appliquent les autorisations de la liste de contrôle d'accès.
Droit d'accès
Définit si l'accès à un objet est accordé ou refusé. La valeur peut être ALLOWED ou DENIED.
Informations sur l'héritage

Les valeurs suivantes existent :

Tableau 1.1. Paramètres d'héritage
ValeurDescriptionCartes à

OI

Héritage d'objet

Ce dossier et ces fichiers

CI

Héritage du conteneur

Ce dossier et ses sous-dossiers

IO

Hériter seulement

Le CAE ne s'applique pas au fichier ou au répertoire actuel

ID

Héritée

L'ACE a été hérité du répertoire parent

En outre, les valeurs peuvent être combinées comme suit :

Tableau 1.2. Combinaisons de paramètres d'héritage
Combinaisons de valeursCorrespond à la configuration de Windows Applies to

OI|CI

Ce dossier, ces sous-dossiers et ces fichiers

OI|CI|IO

Sous-dossiers et fichiers uniquement

CI|IO

Sous-dossiers uniquement

OI|IO

Fichiers uniquement

Permissions

Cette valeur peut être soit une valeur hexagonale représentant une ou plusieurs autorisations Windows, soit un alias smbcacls:

  • Valeur hexagonale représentant une ou plusieurs autorisations Windows.

    Le tableau suivant présente les autorisations avancées de Windows et leur valeur correspondante au format hexadécimal :

    Tableau 1.3. Permissions Windows et leur valeur smbcacls correspondante au format hexagonal
    Autorisations WindowsValeurs hexagonales

    Contrôle total

    0x001F01FF

    Traverser un dossier / exécuter un fichier

    0x00100020

    Liste des dossiers / lecture des données

    0x00100001

    Lire les attributs

    0x00100080

    Lire les attributs étendus

    0x00100008

    Créer des fichiers / écrire des données

    0x00100002

    Créer des dossiers / ajouter des données

    0x00100004

    Écrire les attributs

    0x00100100

    Écrire des attributs étendus

    0x00100010

    Supprimer des sous-dossiers et des fichiers

    0x00100040

    Supprimer

    0x00110000

    Permissions de lecture

    0x00120000

    Modifier les autorisations

    0x00140000

    S'approprier le projet

    0x00180000

    Plusieurs autorisations peuvent être combinées en une seule valeur hexagonale à l'aide de l'opération bit à bit OR.

Pour plus de détails, voir le calcul du masque ACE.

  • Un alias smbcacls. Le tableau suivant présente les alias disponibles :

    Tableau 1.4. Les alias smbcacls existants et les autorisations Windows correspondantes
    smbcacls aliasCartes de l'autorisation Windows

    R

    Lire

    READ

    Lire & exécuter

    W

    Spécial :

    • Créer des fichiers / écrire des données
    • Créer des dossiers / ajouter des données
    • Écrire les attributs
    • Écrire des attributs étendus
    • Permissions de lecture

    D

    Supprimer

    P

    Modifier les autorisations

    O

    S'approprier le projet

    X

    Traverser / exécuter

    CHANGE

    Modifier

    FULL

    Contrôle total

    Note

    Vous pouvez combiner des alias à une lettre lorsque vous définissez des autorisations. Par exemple, vous pouvez définir RD pour appliquer l'autorisation Windows Read et Delete. Cependant, vous ne pouvez pas combiner plusieurs alias autres qu'à une lettre, ni combiner des alias et des valeurs hexadécimales.

1.10.2. Affichage des ACL à l'aide de smbcacls

Pour afficher les ACL sur un partage SMB, utilisez l'utilitaire smbcacls. Si vous exécutez smbcacls sans aucun paramètre d'opération, comme --add, l'utilitaire affiche les listes de contrôle d'accès d'un objet du système de fichiers.

Procédure

Par exemple, pour répertorier les listes de contrôle d'accès du répertoire racine du partage //server/example:

# smbcacls //server/example / -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
REVISION:1
CONTROL:SR|PD|DI|DP
OWNER:AD\Administrators
GROUP:AD\Domain Users
ACL:AD\Administrator:ALLOWED/OI|CI/FULL
ACL:AD\Domain Users:ALLOWED/OI|CI/CHANGE
ACL:AD\Domain Guests:ALLOWED/OI|CI/0x00100021

La sortie de la commande s'affiche :

  • REVISION: La révision ACL interne de Windows NT du descripteur de sécurité
  • CONTROL: Contrôle du descripteur de sécurité
  • OWNER: Nom ou SID du propriétaire du descripteur de sécurité
  • GROUP: Nom ou SID du groupe du descripteur de sécurité
  • ACL entrées de contrôle d'accès. Pour plus de détails, voir Entrées de contrôle d'accès.

1.10.3. Calcul du masque ACE

Dans la plupart des cas, lorsque vous ajoutez ou mettez à jour un ACE, vous utilisez les alias smbcacls répertoriés dans Existing smbcacls aliases et les autorisations Windows correspondantes.

Toutefois, si vous souhaitez définir des autorisations Windows avancées telles qu'elles sont répertoriées dans les autorisations Windows et leur valeur smbcacls correspondante au format hexadécimal, vous devez utiliser l'opération bit-wise OR pour calculer la valeur correcte. Vous pouvez utiliser la commande shell suivante pour calculer la valeur :

# echo $(printf '0x%X' $(( hex_value_1 | hex_value_2 | ... )))

Exemple 1.4. Calcul d'un masque ACE

Vous souhaitez définir les autorisations suivantes :

  • Traverser le dossier / exécuter le fichier (0x00100020)
  • Liste des dossiers / lecture des données (0x00100001)
  • Lire les attributs (0x00100080)

Pour calculer la valeur hexadécimale des autorisations précédentes, entrez :

# echo $(printf '0x%X' $(( 0x00100020 | 0x00100001 | 0x00100080 )))
0x1000A1

Utilisez la valeur renvoyée lorsque vous définissez ou mettez à jour un CAE.

1.10.4. Ajout, mise à jour et suppression d'une ACL à l'aide de smbcacls

En fonction du paramètre que vous transmettez à l'utilitaire smbcacls, vous pouvez ajouter, mettre à jour et supprimer les ACL d'un fichier ou d'un répertoire.

Ajout d'une ACL

Pour ajouter une ACL à la racine du partage //server/example qui accorde des permissions à CHANGE pour This folder, subfolders, and files au groupe AD\Domain Users:

# smbcacls //server/example / -U "DOMAIN\administrator --add ACL:"AD\Domain Users":ALLOWED/OI|CI/CHANGE
Mise à jour d'une ACL

La mise à jour d'une ACL est similaire à l'ajout d'une nouvelle ACL. Vous mettez à jour une liste de contrôle d'accès en remplaçant la liste de contrôle d'accès à l'aide du paramètre --modify par un principal de sécurité existant. Si smbcacls trouve le principal de sécurité dans la liste ACL, l'utilitaire met à jour les autorisations. Dans le cas contraire, la commande échoue avec une erreur :

ACL pour SID principal_name introuvable

Par exemple, pour mettre à jour les autorisations du groupe AD\Domain Users et les définir à READ pour This folder, subfolders, and files:

# smbcacls //server/example / -U "DOMAIN\administrator --modify ACL:"AD\Domain Users":ALLOWED/OI|CI/READ
Suppression d'une ACL

Pour supprimer une ACL, passez le paramètre --delete avec l'ACL exacte à l'utilitaire smbcacls. Par exemple :

# smbcacls //server/example / -U "DOMAIN\administrator --delete ACL:"AD\Domain Users":ALLOWED/OI|CI/READ
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.