J'ai un serveur Ubuntu partageant certains dossiers en utilisant Samba. Lorsqu'un client crée un nouveau dossier ou fichier, les autorisations ne sont pas définies en fonction des paramètres de smb.conf.
Mes paramètres actuels pour un partage spécifique:
[share]
path = /mnt/share
browsable = yes
guest ok = no
writable = yes
read only = no
create mask = 0774
directory mask = 0774
write list = netuser
Lorsqu'un client samba (une boîte Windows 7) utilise le compte 'netuser' pour créer un fichier ou un répertoire, les autorisations deviennent
drwxr-sr-- 2 netuser sambashare 4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare 0 2012-01-22 21:07 New Text Document.txt
Le répertoire parent a l'indicateur set group id, donc le propriétaire du groupe sambashare. L'idée est que les utilisateurs de samba et les utilisateurs de serveurs appartiennent au groupe sambashare et doivent donc pouvoir éditer, supprimer et créer des fichiers et des répertoires. Cependant, comme les dossiers créés n'ont pas l'indicateur d'écriture pour le groupe, les utilisateurs du serveur ne peuvent pas créer de nouveaux fichiers ou dossiers dans ces dossiers sans sudo.
J'ai testé l'ajout et la suppression du masque de répertoire, le mode de répertoire forcé, le mode de sécurité de répertoire et le mode de sécurité de répertoire forcé, mais les comportements persistent. Les fichiers et dossiers nouvellement créés ne reçoivent pas l'autorisation 774 prévue, mais plutôt 764 et 754 respectivement.
Qu'est-ce que je rate? Pourquoi Samba ne définit-il pas les autorisations appropriées?
Après beaucoup d'essais et d'erreurs, c'est le bon code pour partager le répertoire samba en utilisant les groupes SGID et Unix. Si l'utilisateur se connecte de manière anonyme, il obtient r / o, s'il se connecte et est membre du groupe affecté, il obtient r / w.
J'ai un groupe nommé «admin» défini comme groupe principal pour les utilisateurs avec des privilèges d'écriture, tout le monde obtient des droits en lecture seule.
Je force l'utilisateur à personne, de sorte que différentes personnes travaillant sur les mêmes fichiers n'interfèrent pas entre elles.
J'ai mis chmod 2755 sur le répertoire partagé, donc il hérite des répertoires créés avec le même groupe 'admin'
Vérifier si tout va bien:
Partie pertinente de /etc/samba/smb.conf:
Ce message m'a mis sur la bonne voie, mais testparm a révélé 4 directives incorrectes, donc je partage la configuration fixe ici. Dans samba, moins vous spécifiez de directives, mieux cela fonctionne.
la source
J'ai eu le même problème, mais tout comme les directives de masquage ne fonctionnait pas pour moi (Samba 4.3.11):
La seule option qui fonctionnait était sous la section [globale] ou partage:
Modifiez simplement toutes les autorisations de dossier et de fichier selon vos besoins, afin que les futurs dossiers et fichiers héritent des mêmes autorisations.
la source
4.8.11
lefreebsd
aussi :)Il existe un problème très similaire lors de la connexion à partir d'autres périphériques Unix / Linux / OSX / MacOS: tous les paramètres sont ignorés sauf si vous spécifiez
Et connectez-vous avec
smb://<serverhost>
au lieu decifs://<serverhost>
.la source
la source