#1 Le 18/06/2012, à 08:08
- vincentatlille
[Résolu] - Gestion avancé des droits avec samba
Bonjour,
Je suis en train de mettre en place un partage de fichier sous samba au sein de mon entreprise.
Contexte :
Serveur dédié avec Ubuntu 12.04 édition serveur.
Un certain nombre de partage doivent être accessibles uniquement par mot de passe, aux utilisateurs spécifiés.
Je vais vous présenter un cas équivalent au mien, en simplifiant au maximum :
J'ai déclaré les partages "partage1" et "partage2" dans smb.conf :
[partage1]
writeable = yes
invalid users = root
path = /home/partage1
write list = user1,user2,user3
valid users = user1,user2,user3
create mode = 0775
browsable = yes
directory mode = 0775
[partage2]
writeable = yes
invalid users = root
path = /home/partage2
write list = user2,user3,user4,user5
valid users = user2,user3,user4,user5
create mode = 0775
browsable = yes
directory mode = 0775
J'ai créé ces cinq utilisateurs au sein du système (adduser) et les ai ajouté à samba (smbpasswd).
J'ai créé les groupes "group1" (qui intègre : user1,user2,user3) et "group2" (qui intègre : user2,user3,user4,user5) au sein du système.
Mon problème :
Chacun peut créer des fichiers sur les partages auxquels il a droit.
C'est au niveau de la modification de fichiers que ça pose problème.
En effet :
Lorsque user1 créé un fichier, ce fichier appartient à user1:user1 (avec les droit 764, comme tout le monde lors de la création de fichier), ce qui fait qu'il n'est modifiable dans aucun des deux partages.
Si l'on s'arrange pour changer le groupe par défaut d'un fichier lors de sa création, je peux choisir group1 ou group2.
Je choisis group1, le fichier créé par user1 a donc les droits user1:group1, et alors user2 et user3 pourront modifier ce fichier qu'il soit créé dans le partage partage1 ou le partage2. Mais user4 et user5 ne pourront modifier un fichier créé par user1 dans le partage partage2...
Il faut mettre cela à l'échelle de X partages, Y users et Z groups.
Proposition de résolution :
Je mets tous les comptes utilisateurs dans le même groupe : le groupe "groupall"
Ainsi tous le monde pourra modifier les fichiers de tout le monde dans tous les partages auxquels ils ont accès et seulement ceux auxquels ils ont accès puisque personne n'a d'accès SSH ou autre.
Un utilisateur n'ayant pas accès au partage partage2 ne pourra modifier un fichier dedans car le fichier smb.conf ne contiendra pas cet utilisateur dans les "valid users" de ce partage.
Que penser de tout cela ?
Est-ce bon pour la sécurité ?
Y a t'il d'autres moyens de procéder ?
Qu'est-ce qui se fait en entreprise dans ce genre de configuration ?
Je suis ouvert à la discussion, si il vous manque des infos, etc...
Merci de votre aide,
Cdlt
Vincent
Dernière modification par vincentatlille (Le 20/06/2012, à 11:30)
Hors ligne
#2 Le 18/06/2012, à 10:35
- hayabusa
Re : [Résolu] - Gestion avancé des droits avec samba
salut, je rencontre exactement le même problème.
proposition de résolution:
# 1ere ==> il faut une bonne configuration du paramètre " create mode "
# 2eme ==> ( la pire ) faire un script qui exécute la commande suivante à chaque création de fichier ou dossier:
chmod 775 /SHARE/répertoire && chmod 777 /SHARE/répertoire/* && chown user:grp_concerné /SHARE/répertoire /*
ce n'est pas du tout pratique, mais c'est la seule solution qui me vient à l'esprit. A moins qu'il existe un paramètre permettant d'attribuer un élément créer par un utilisateur à tous son groupe.
veuillez nous aider !!!
Hors ligne
#3 Le 18/06/2012, à 10:44
- droopy191
Re : [Résolu] - Gestion avancé des droits avec samba
Salut,
Qq pistes pour améliorer votre fichier et en partie résoudre vos problèmes de droits:
Un template générique, par défaut un partage est visible en lecture seule pour le group users. Les droits sont forcés vers le group users
[template]
# Par défaut les partages sont visibles et en lecture seule
browseable = yes
read only = yes
# Forcage des droits pour les clients
create mask = 0664
directory mask = 0775
force group = users
# permettre de supprimer les fichiers en lecture seule sous windows
delete readonly = yes
# liste des utilisateurs autorisés
valid users = @users
Déclaration du partage1, copie la déclaration du template et ajoute les droits en écriture au groupe users
[Partage1]
path = /mnt/partage1
copy = template
available = yes
comment = les fichiers du partage 1
# Authorise l'ecriture aux utilisateurs suivants
write list = @users
Une remarque, évitez les accès sur le partage avec différentes méthodes ssh, samba, nfs car cela devient très compliqué à gérer au niveau des droits.
Chacun peut créer des fichiers sur les partages auxquels il a droit.
C'est au niveau de la modification de fichiers que ça pose problème.En effet :
Lorsque user1 créé un fichier, ce fichier appartient à user1:user1 (avec les droit 764, comme tout le monde lors de la création de fichier), ce qui fait qu'il n'est modifiable dans aucun des deux partages.
Si l'on s'arrange pour changer le groupe par défaut d'un fichier lors de sa création, je peux choisir group1 ou group2.Je choisis group1, le fichier créé par user1 a donc les droits user1:group1, et alors user2 et user3 pourront modifier ce fichier qu'il soit créé dans le partage partage1 ou le partage2. Mais user4 et user5 ne pourront modifier un fichier créé par user1 dans le partage partage2...
Il faut mettre cela à l'échelle de X partages, Y users et Z groups.
Ici, je n'ai pas compris le problème, user1 n'a pas les droits d'accès sur partage 2. Comment pourrait il y créer un fichier ?
Dernière modification par droopy191 (Le 18/06/2012, à 10:45)
Hors ligne
#4 Le 18/06/2012, à 10:57
- hayabusa
Re : [Résolu] - Gestion avancé des droits avec samba
Pour éclaircir un peu plus le problème, je vais expliquer mon cas:
j'ai donc un partage [commerce] qui appartient au groupe "commerciaux" qui lui inclut les users : usercom1, usercom2
lorsque usercom1 créer un fichier ou dossier il est le seul à pouvoir le lire/écrire/exécuter.
lorsque je fais un ls -al sur le répertoire dans lequel il a créer j'obtiens ==> usercom1:usercom1 fichier_crée_par_usercom1
usercom2 qui fais aussi parti du grpe "commerciaux" n'a aucun droit sur ce fichier car ce n'est pas lui qui l'a créer
normalement, avec un ls -al sur le répertoire je devrais obtenir ==> usercom1:commerciaux fichier_crée_par_usercom1
j’espère avoir éclairci un peu le problème.
Hors ligne
#5 Le 18/06/2012, à 12:21
- droopy191
Re : [Résolu] - Gestion avancé des droits avec samba
Pour éclaircir un peu plus le problème, je vais expliquer mon cas:
j'ai donc un partage [commerce] qui appartient au groupe "commerciaux" qui lui inclut les users : usercom1, usercom2
lorsque usercom1 créer un fichier ou dossier il est le seul à pouvoir le lire/écrire/exécuter.
lorsque je fais un ls -al sur le répertoire dans lequel il a créer j'obtiens ==> usercom1:usercom1 fichier_crée_par_usercom1usercom2 qui fais aussi parti du grpe "commerciaux" n'a aucun droit sur ce fichier car ce n'est pas lui qui l'a créer
normalement, avec un ls -al sur le répertoire je devrais obtenir ==> usercom1:commerciaux fichier_crée_par_usercom1
j’espère avoir éclairci un peu le problème.
Vous avez les élements dans mon post précédent.
Directive "force group"
Hors ligne
#6 Le 18/06/2012, à 13:22
- hayabusa
Re : [Résolu] - Gestion avancé des droits avec samba
Merci beaucoup pour ton aide, mon problème est résolu, j'ai ajouter le paramètre "force group" à la conf de mon partage et sa fonctionne
[Informatique]
path = /SHARE/Informatique
comment = INFORMATIQUE partagés sur WORKGROUP
read only = yes
valid users = @IT,@TheAdmin -> seul les informaticiens (grp -> IT) peuvent accéder au partage
write list = @IT,@TheAdmin -> seul les informaticiens (grp -> IT) peuvent accéder au partage
browseable = yes
force group = IT -> tous les fichiers créés dans ce partage sont en lecture/écriture/exécution pour tout le groupe
Merci
Hors ligne
#7 Le 20/06/2012, à 11:29
- vincentatlille
Re : [Résolu] - Gestion avancé des droits avec samba
Merci pour le coup de main (et les astuces), problème également résolu donc.
A bientôt !
Hors ligne