1.7. Configuration d'un partage de fichiers Samba utilisant des listes de contrôle POSIX
En tant que service Linux, Samba prend en charge les partages avec des ACL POSIX. Elles vous permettent de gérer les autorisations localement sur le serveur Samba à l'aide d'utilitaires tels que chmod
. Si le partage est stocké sur un système de fichiers qui prend en charge les attributs étendus, vous pouvez définir des ACL avec plusieurs utilisateurs et groupes.
Si vous devez utiliser des ACL Windows à granularité fine à la place, voir Configuration d'un partage utilisant des ACL Windows.
Certaines parties de cette section ont été reprises de la documentation Setting up a Share Using POSIX ACLs publiée dans le Samba Wiki. Licence : CC BY 4.0. Auteurs et contributeurs : Voir l'onglet historique de la page Wiki.
1.7.1. Ajout d'un partage utilisant des ACL POSIX
Cette section décrit comment créer un partage nommé example
qui fournit le contenu du répertoire /srv/samba/example/
et utilise des ACL POSIX.
Conditions préalables
Samba a été configuré dans l'un des modes suivants :
Procédure
Créez le dossier s'il n'existe pas. Par exemple :
# mkdir -p /srv/samba/example/
Si vous utilisez SELinux en mode
enforcing
, définissez le contextesamba_share_t
pour le répertoire :# semanage fcontext -a -t samba_share_t "/srv/samba/example(/.*)?" # restorecon -Rv /srv/samba/example/
Définir les ACL du système de fichiers sur le répertoire. Pour plus de détails, voir :
Ajoutez l'exemple de partage au fichier
/etc/samba/smb.conf
. Par exemple, pour ajouter le partage en écriture :[example] path = /srv/samba/example/ read only = no
NoteIndépendamment des ACL du système de fichiers, si vous ne définissez pas
read only = no
, Samba partage le répertoire en mode lecture seule.Vérifiez le fichier
/etc/samba/smb.conf
:# testparm
Ouvrez les ports requis et rechargez la configuration du pare-feu à l'aide de l'utilitaire
firewall-cmd
:# firewall-cmd --permanent --add-service=samba # firewall-cmd --reload
Redémarrez le service
smb
:# systemctl restart smb
1.7.2. Définition d'ACL Linux standard sur un partage Samba qui utilise des ACL POSIX
Les listes de contrôle d'accès standard de Linux permettent de définir des autorisations pour un propriétaire, un groupe et tous les autres utilisateurs non définis. Vous pouvez utiliser les utilitaires chown
, chgrp
, et chmod
pour mettre à jour les ACL. Si vous avez besoin d'un contrôle précis, vous pouvez utiliser les ACL POSIX plus complexes, voir
Définition d'ACL étendues sur un partage Samba qui utilise des ACL POSIX.
La procédure suivante définit le propriétaire du répertoire /srv/samba/example/
comme étant l'utilisateur root
, accorde les droits de lecture et d'écriture au groupe Domain Users
et refuse l'accès à tous les autres utilisateurs.
Conditions préalables
- Le partage Samba sur lequel vous souhaitez définir les ACL existe.
Procédure
# chown root:"Domain Users" /srv/samba/example/ # chmod 2770 /srv/samba/example/
L'activation du bit set-group-ID (SGID) sur un répertoire définit automatiquement le groupe par défaut pour tous les nouveaux fichiers et sous-répertoires sur celui du groupe du répertoire, au lieu du comportement habituel qui consiste à le définir sur le groupe primaire de l'utilisateur qui a créé la nouvelle entrée du répertoire.
Ressources supplémentaires
-
chown(1)
etchmod(1)
pages de manuel
1.7.3. Définition d'ACL étendues sur un partage Samba qui utilise des ACL POSIX
Si le système de fichiers sur lequel le répertoire partagé est stocké prend en charge les ACL étendues, vous pouvez les utiliser pour définir des autorisations complexes. Les ACL étendues peuvent contenir des autorisations pour plusieurs utilisateurs et groupes.
Les ACL POSIX étendues vous permettent de configurer des ACL complexes avec plusieurs utilisateurs et groupes. Toutefois, vous ne pouvez définir que les autorisations suivantes :
- Pas d'accès
- Lire l'accès
- Accès en écriture
- Contrôle total
Si vous avez besoin d'autorisations Windows fines, telles que Create folder / append data
, configurez le partage pour qu'il utilise les listes de contrôle d'accès Windows.
Voir Configuration d'un partage utilisant les ACL de Windows.
La procédure suivante montre comment activer les ACL étendues sur un partage. Elle contient également un exemple de configuration des ACL étendues.
Conditions préalables
- Le partage Samba sur lequel vous souhaitez définir les ACL existe.
Procédure
Activez le paramètre suivant dans la section du partage du fichier
/etc/samba/smb.conf
pour activer l'héritage des ACL étendues :hériter des acls = oui
Pour plus de détails, voir la description des paramètres dans la page de manuel
smb.conf(5
).Redémarrez le service
smb
:# systemctl restart smb
Définissez les ACL sur le répertoire. Par exemple :
Exemple 1.2. Définition des ACL étendues
La procédure suivante définit les autorisations de lecture, d'écriture et d'exécution pour le groupe
Domain Admins
, les autorisations de lecture et d'exécution pour le groupeDomain Users
, et refuse l'accès à tous les autres utilisateurs du répertoire/srv/samba/example/
:Désactiver l'attribution automatique des autorisations au groupe principal de comptes d'utilisateurs :
# setfacl -m group::--- /srv/samba/example/ # setfacl -m default:group::--- /srv/samba/example/
Le groupe primaire du répertoire est également mappé au principal dynamique
CREATOR GROUP
. Lorsque vous utilisez des ACL POSIX étendues sur un partage Samba, ce principal est automatiquement ajouté et vous ne pouvez pas le supprimer.Définir les droits d'accès au répertoire :
Accorder les droits de lecture, d'écriture et d'exécution au groupe
Domain Admins
:# setfacl -m group:"DOMAIN\Domain Admins":rwx /srv/samba/example/
Accorder les droits de lecture et d'exécution au groupe
Domain Users
:# setfacl -m group:"DOMAIN\Domain Users":r-x /srv/samba/example/
Définissez les autorisations pour l'entrée ACL
other
afin de refuser l'accès aux utilisateurs qui ne correspondent pas aux autres entrées ACL :# setfacl -R -m other::--- /srv/samba/example/
Ces paramètres ne s'appliquent qu'à ce répertoire. Sous Windows, ces ACL sont associées au mode
This folder only
.Pour permettre aux nouveaux objets du système de fichiers créés dans ce répertoire d'hériter des autorisations définies à l'étape précédente :
# setfacl -m default:group:"DOMAIN\Domain Admins":rwx /srv/samba/example/ # setfacl -m default:group:"DOMAIN\Domain Users":r-x /srv/samba/example/ # setfacl -m default:other::--- /srv/samba/example/
Avec ces paramètres, le mode
This folder only
pour les mandants est maintenant réglé surThis folder, subfolders, and files
.
Samba associe les autorisations définies dans la procédure aux listes de contrôle d'accès de Windows suivantes :
Principal Accès S'applique à Domain\Administrateurs de domaine
Contrôle total
Ce dossier, ces sous-dossiers et ces fichiers
Domain\Utilisateurs du domaine
Lire & exécuter
Ce dossier, ces sous-dossiers et ces fichiers
Everyone
[a]Aucun
Ce dossier, ces sous-dossiers et ces fichiers
owner (Unix User\owner) [b]
Contrôle total
Ce dossier ne contient que
primary_group (Unix User\primary_group) [c]
Aucun
Ce dossier ne contient que
Contrôle total
Sous-dossiers et fichiers uniquement
Aucun
Sous-dossiers et fichiers uniquement
[a] Samba mappe les permissions pour ce principal à partir de l'entrée ACLother
.[b] Samba associe le propriétaire du répertoire à cette entrée.[c] Samba associe le groupe primaire du répertoire à cette entrée.[d] Sur les nouveaux objets du système de fichiers, le créateur hérite automatiquement des autorisations de ce principal.[e] La configuration ou la suppression de ces principaux des listes de contrôle d'accès n'est pas prise en charge sur les partages qui utilisent des listes de contrôle d'accès POSIX.[f] Pour les nouveaux objets du système de fichiers, le groupe principal du créateur hérite automatiquement des autorisations de ce principal.