1.11. Permettre aux utilisateurs de partager des répertoires sur un serveur Samba
Sur un serveur Samba, vous pouvez configurer les utilisateurs pour qu'ils puissent partager des répertoires sans avoir les droits d'accès à la racine.
1.11.1. Activation de la fonction de partage des utilisateurs
Avant que les utilisateurs puissent partager des répertoires, l'administrateur doit activer les partages d'utilisateurs dans Samba.
Par exemple, pour permettre aux seuls membres du groupe local example
de créer des partages d'utilisateurs.
Procédure
Créer le groupe local
example
, s'il n'existe pas :# groupadd example
Préparez le répertoire dans lequel Samba stockera les définitions de partage des utilisateurs et définissez correctement ses permissions. Par exemple :
Create the directory:
# mkdir -p /var/lib/samba/usershares/
Définir les droits d'écriture pour le groupe
example
:# chgrp example /var/lib/samba/usershares/ # chmod 1770 /var/lib/samba/usershares/
- Activez le bit collant pour empêcher les utilisateurs de renommer ou de supprimer des fichiers stockés par d'autres utilisateurs dans ce répertoire.
Modifiez le fichier
/etc/samba/smb.conf
et ajoutez ce qui suit à la section[global]
:Définissez le chemin d'accès au répertoire que vous avez configuré pour stocker les définitions des partages d'utilisateurs. Par exemple :
usershare path = /var/lib/samba/usershares/
Définir le nombre de partages d'utilisateurs que Samba autorise à créer sur ce serveur. Par exemple :
usershare max shares = 100
Si vous utilisez la valeur par défaut de
0
pour le paramètreusershare max shares
, les partages d'utilisateurs sont désactivés.En option, définissez une liste de chemins d'accès absolus aux répertoires. Par exemple, pour configurer que Samba n'autorise que le partage des sous-répertoires des répertoires
/data
et/srv
à partager, définissez :usershare prefix allow list = /data /srv
Pour une liste d'autres paramètres liés au partage d'utilisateurs que vous pouvez définir, voir la section
USERSHARES
dans la page de manuelsmb.conf(5)
.Vérifiez le fichier
/etc/samba/smb.conf
:# testparm
Recharger la configuration de Samba :
# smbcontrol all reload-config
Les utilisateurs peuvent désormais créer des partages d'utilisateurs.
1.11.2. Ajout d'un partage d'utilisateur
Après avoir activé la fonction de partage par l'utilisateur dans Samba, les utilisateurs peuvent partager des répertoires sur le serveur Samba sans les autorisations root
en exécutant la commande net usershare add
.
Synopsis de la commande net usershare add
:
net usershare add
nom_partage chemin [[ commentaire ] | [ ACLs ]] [ guest_ok=y|n ]
Si vous définissez des ACL lors de la création d'un partage d'utilisateurs, vous devez spécifier le paramètre commentaire avant les ACL. Pour définir un commentaire vide, utilisez une chaîne vide entre guillemets.
Notez que les utilisateurs ne peuvent activer l'accès invité sur un partage d'utilisateur que si l'administrateur a défini usershare allow guests = yes
dans la section [global]
du fichier /etc/samba/smb.conf
.
Exemple 1.5. Ajout d'un partage d'utilisateur
Un utilisateur souhaite partager le répertoire /srv/samba/
sur un serveur Samba. Le partage doit être nommé example
, n'avoir aucun commentaire et être accessible aux utilisateurs invités. En outre, les autorisations de partage doivent être définies comme un accès complet pour le groupe AD\Domain Users
et des autorisations de lecture pour les autres utilisateurs. Pour ajouter ce partage, exécutez le programme en tant qu'utilisateur :
$ net usershare add example /srv/samba/ "" "AD\Domain Users":F,Everyone:R guest_ok=yes
1.11.3. Mise à jour des paramètres d'un partage d'utilisateurs
Pour mettre à jour les paramètres d'un partage utilisateur, remplacez le partage en utilisant la commande net usershare add
avec le même nom de partage et les nouveaux paramètres.
1.11.4. Affichage d'informations sur les partages d'utilisateurs existants
Les utilisateurs peuvent entrer la commande net usershare info
sur un serveur Samba pour afficher les partages des utilisateurs et leurs paramètres.
Conditions préalables
- Un partage d'utilisateurs est configuré sur le serveur Samba.
Procédure
Pour afficher tous les partages créés par un utilisateur :
$ net usershare info -l [share_1] path=/srv/samba/ comment= usershare_acl=Everyone:R,host_name\user:F, guest_ok=y ...
Pour ne répertorier que les partages créés par l'utilisateur qui exécute la commande, omettez le paramètre
-l
.Pour n'afficher que les informations relatives à des partages spécifiques, indiquez le nom du partage ou des caractères génériques à la commande. Par exemple, pour afficher les informations sur les partages dont le nom commence par
share_
:$ net usershare info -l share_*
1.11.5. Liste des actions des utilisateurs
Si vous souhaitez répertorier uniquement les partages d'utilisateurs disponibles sans leurs paramètres sur un serveur Samba, utilisez la commande net usershare list
.
Conditions préalables
- Un partage d'utilisateurs est configuré sur le serveur Samba.
Procédure
Pour dresser la liste des partages créés par un utilisateur :
$ net usershare list -l share_1 share_2 ...
Pour ne répertorier que les partages créés par l'utilisateur qui exécute la commande, omettez le paramètre
-l
.Pour ne répertorier que des partages spécifiques, indiquez le nom du partage ou des caractères génériques à la commande. Par exemple, pour répertorier uniquement les partages dont le nom commence par
share_
:$ net usershare list -l share_*
1.11.6. Suppression d'un partage d'utilisateur
Pour supprimer un partage utilisateur, utilisez la commande net usershare delete
en tant qu'utilisateur ayant créé le partage ou en tant qu'utilisateur root
.
Conditions préalables
- Un partage d'utilisateurs est configuré sur le serveur Samba.
Procédure
$ net usershare delete share_name