Comment forcer des autorisations spécifiques pour de nouveaux fichiers / dossiers sur le serveur de fichiers Linux?

14

J'ai un problème avec mon installation d'Ubuntu 9.10 (serveur de fichiers) et ses autorisations samba. La connexion et la lecture fonctionnent très bien. Cependant, la création de nouveaux répertoires par les utilisateurs restreint l'accès pour les autres utilisateurs. Par exemple, si Bob (utilisateur Windows qui mappe le lecteur) crée un dossier dans le répertoire, Jane (utilisateur Mac qui monte simplement smb) peut lire à partir de celui-ci, mais ne peut pas y écrire - et vice versa. Je dois alors aller CHMOD 777 l'annuaire pour que tout le monde soit heureux. J'ai essayé d'éditer les options "create / directory mask" et "force" dans le fichier smb.conf mais cela ne semble pas aider.

Je suis sur le point de recourir à CRONTABing une routine chmod récursive, bien que je suis sûr que ce n'est pas la solution. Comment puis-je faire en sorte que tous les nouveaux articles soient toujours 777? Quelqu'un a-t-il des suggestions pour corriger cette situation constante?

Meilleur

humble_coder
la source
Groupes d'utilisateurs et autres autorisations natives, ne chmod 777.
Warner

Réponses:

13

J'utilise généralement la fonctionnalité native de SAMBA pour la gestion des autorisations et des groupes sur les partages. Par exemple..

force user=user1
force group=sharedgroup
create mask=775

Vous devez spécifier ces paramètres sous le partage. Assurez-vous de recharger SAMBA après le changement de configuration, ce qui pourrait être fait via le script init.

Warner
la source
1
Pourtant, le message dit qu'il a fait cela et que cela n'a pas fonctionné ....
Mistiry
2
Puis il l'a mal fait. Ça marche.
Warner
Je ne sais pas quoi de neuf. Je l'ai essayé manuellement et via Webmin en vain. Peut-être que mon choix de groupe de groupe est faux? J'ai essayé d'utiliser des "utilisateurs" ainsi que divers groupes créés manuellement, dont tous sont devenus membres. Indépendamment de ce que je fais, les utilisateurs ne peuvent pas manipuler quoi que ce soit qu'ils ne se soient pas placés. La seule "solution" est que tous les utilisateurs se connectent (ou montent) en tant qu'INVITÉ, ce qui crée de la confusion.
humble_coder
SAMBA utilise une combinaison d'autorisations et de paramètres de système de fichiers dans la configuration. Si les utilisateurs ne sont pas sur write listou autrement autorisés à écrire dans la configuration de partage, cela ne fonctionnera pas. Si l'utilisateur sur lequel SAMBA s'exécute n'est pas en mesure d'accéder aux répertoires, cela ne fonctionnera pas. Les utilisateurs doivent être membres du groupe approprié, les répertoires et les fichiers doivent appartenir à ce groupe et avoir le bit inscriptible défini pour le groupe. Vous pouvez également consulter les journaux SAMBA.
Warner
2
Je cherche ça depuis longtemps! Merci! :) Cela fonctionne comme prévu.
NagyI
2

Définissez les autorisations sur le répertoire sur 2777, comme ceci:

chmod 2777 /shared/dir

Cela provoque tous les fichiers et dossiers du répertoire «/ shared / dir» à hériter des autorisations du répertoire supérieur, dans ce cas 777.

Ensuite, faites cela pour vous assurer que tous les fichiers disposent des autorisations appropriées:

chmod -R 777 /shared/dir
Mistiry
la source
La seule situation où l'écriture publique est acceptable est avec /tmp.
Warner
1
Ouais, probablement mieux d'utiliser 774 ou même 770, selon la situation. Mais, il a demandé comment les faire tous «777», donc je viens de l'utiliser dans mon exemple.
Mistiry
3
Oui, mais comment puis-je m'assurer que tous les futurs fichiers copiés dans ce répertoire sur le réseau reçoivent les mêmes autorisations, quelles que soient leurs autorisations initiales? Je n'ai aucun problème lorsque je le fais manuellement, je veux simplement qu'il soit automatisé.
humble_coder
2
Cela ne fonctionne pas. L'indicateur setgid pour les dossiers définit le groupe de nouveaux fichiers et dossiers, pas les autorisations, et l'exécution de chmod tout le temps n'est pas acceptable. J'ai besoin d'une solution qui n'est pas liée à la samba, pour Steam sur Linux afin que je puisse partager la bibliothèque entre les utilisateurs.
Sam Watkins
2

Je me rends compte que c'est une vieille question mais j'ai récemment eu un problème similaire et voici comment je l'ai résolu:

[partager]
masque de sécurité = 0770
créer un masque = 0770
forcer le mode de création = 0660
comment = partage Samba pour l'informatique
chemin = / raid / partage
navigable = OUI
invité ok = non
écrire la liste = racine, @ "DOMAINE + it_nfs"
groupe de force = DOMAIN + it_nfs

Cela garantit que les utilisateurs doivent être dans le groupe de sécurité "it_nfs" dans AD, tous les fichiers seront écrits avec le groupe "it_nfs" et tous les fichiers seront écrits avec au moins 0660 et au plus 0770 perms. Forcer l'ID de groupe garantit que tout membre de ce groupe peut lire / écrire les fichiers sur le partage. Sinon, vous vous retrouvez avec des situations où un fichier écrit en bob: bob ne peut pas être écrit par charlie: charlie, même si les deux sont dans "it_nfs".

Evan
la source
0

D'après les commentaires de la réponse acceptée, cela n'a en fait pas résolu le problème de OP, et les autres réponses non plus, si OP avait le même problème que moi:

Avoir le partage sur une partition NTFS / FAT.

Souvenez-vous de cela lorsque vous branchez votre disque de bureau sur un NAS pour partager vos albums de famille: fs montez les paramètres pour l'utilisateur, le groupe, les modes de création, etc. remplacez tout ce qui est configuré pour Samba! ;)

(Par exemple dans mon cas, indépendamment de smb.conftout a été créé par root, avec 777- selon le fstab defaultspour le montage de fusible NTFS ...)

Sz.
la source