J'ai un partage Samba contenant plusieurs dossiers comme celui-ci :
share
- folderA
- folderB
- folderC
- folderD
Il y a environ 20 utilisateurs qui accèdent à ces parts. Chaque utilisateur peut avoir son propre accès à certains des répertoires, par exemple Ben peut accéder au dossier A et au dossier C, mais pas au dossier B et au dossier D. Jenny peut accéder au dossier B et au dossier C, et ainsi de suite. Jenny peut accéder au dossier B et au dossier C, et ainsi de suite.
Je ne veux pas que les utilisateurs aient à monter chaque dossier dont ils ont besoin. Je veux qu'ils montent le dossier "share" qui contient tous les sous-dossiers. L'accès est ensuite limité en définissant les permissions linux.
J'ai créé un groupe pour chaque sous-répertoire et ajouté les utilisateurs à ces groupes. Le contrôle d'accès fonctionne parfaitement pour les fichiers existants. Mais chaque fois qu'un utilisateur crée un fichier dans un sous-répertoire, il est refusé à tous les autres utilisateurs ayant le droit d'accès en lecture/écriture dans ce répertoire. Pour résoudre ce problème, j'ai joué avec le masquage samba mais je n'arrive pas à le faire fonctionner.
Mon conf Samba ressemble à ceci :
guest ok = no
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
[Share]
path = /var/samba
valid users = @everybody
read only = no
writeable = yes
[folderA]
path = /var/samba/folderA
valid users = @users_folderA
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderA
[folderB]
path = /var/samba/folderB
valid users = @users_folderB
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderB
[folderC]
path = /var/samba/folderC
valid users = @users_folderC
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderC
[folderD]
path = /var/samba/folderD
valid users = @users_folderD
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderD
Donc, évidemment, chaque utilisateur est dans le groupe everybody, donc ils peuvent monter le partage avec les sous-répertoires. L'accès pour chaque sous-répertoire fonctionne parfaitement bien. Mais chaque fois que Ben crée un fichier dans le dossierC, le fichier obtient les permissions -rwxr--r-- alors qu'il devrait être -rwxrwx---.
Je pense que les partages pour les dossiers individuels ne fonctionnent pas du tout car j'ai essayé de définir writeable = non et read only = oui pour le tester. J'ai redémarré smbd et nmbd et remonté le partage réseau (dans Windows 10). Les utilisateurs ont pu créer des fichiers et modifier les leurs.
Cela fonctionne sur un raspberry pi avec raspbian. Le disque dur contenant les fichiers est formaté en ext4 et monté via fstab.
0 votes
Pour imposer les droits d'accès souhaités aux fichiers, utilisez
force create mode = 770
dans lefolderC
de votre configuration.0 votes
Merci, cela n'a pas résolu le problème mais j'ai remarqué que j'avais des espaces dans les chemins de mon vrai smb.conf : [folderA] path = /var/samba/quelque dossier avec des espaces. J'ai résolu ce problème en entourant le chemin de " ("/var/samba/quelque dossier avec des espaces"). Les paramètres du paragraphe [folderA] ne sont utilisés que lorsque l'utilisateur monte directement [folderA], mais les paramètres ne sont pas utilisés lorsque l'utilisateur monte [share] et navigue dans folderA. Les paramètres de [share] sont utilisés pour le dossier A. Comment puis-je contourner les paramètres de [share] pour le dossier A sans monter directement le dossier A mais en y accédant depuis [share] ?