Pages : 1
#1 Le 05/11/2010, à 11:35
- blueduck
Permissions Samba : déplacement et copie de fichiers
Bonjour,
J'ai un serveur Samba et des clients Ubuntu et Windows 7 sur mon réseau familial. Les partages sur le serveur sont visibles par tout le LAN, mais seuls un groupe d'utilisateurs a les permissions nécessaires pour créer/modifier/supprimer des fichiers.
Pour être sûr qu'un fichier créé par un membre de ce groupe privilégié puisse être modifié/supprimé par les autres membres de ce groupe, j'ai utilisé les directives force group, create mask (fixé à 0664) et directory mask (à 0775).
Cela fonctionne très bien lorsque les utilisateurs privilégiés créent des dossiers et des fichiers directement sur le serveur (par exemple avec un clic droit, Nouveau/Dossier) : les fichiers ainsi créés appartiennent à l'utilisateur créateur, au groupe privilégié, et affichent des permissions -rw-rw-r-- ; du coup, les utilisateurs privilégiés autres que le créateur peuvent tout de même modifier/supprimer les fichiers en question.
En revanche, cela ne fonctionne plus dans le cas suivant : mon utilisateur privilégié crée un fichier sur son propre ordinateur sous Ubuntu (avec donc des permissions standard à 0644), puis le déplace/copie sur le serveur. Dans ce cas, les permissions de création sont préservées au lieu de passer à 0664 (*).
Du coup bien sûr, les autres membres du groupe ne peuvent plus modifier/supprimer le fichier transféré puisqu'ils n'ont pas dessus les droits en écriture.
Je ne comprends pas bien ce fonctionnement : je croyais que, du côté du serveur, une création ou un transfert revenaient au même, puisque dans les deux cas il faut bien qu'il crée le fichier...
Quelqu'un a-t-il une explication/solution ? (Au hasard : figaro ? )
Blue Duck
(*) Je pense à l'instant que je n'ai pas vérifié si, après la copie/déplacement sur le serveur, le fichier transféré est bien attribué au groupe privilégié en lieu et place du groupe primaire du créateur ; je regarderai ce soir.
Poste de travail : Kubuntu « Impish Indri » 22.10 64 bits - AMD Ryzen 3900X @ 3.8 GHz - Palit GeForce RTX 2070 Super
Serveur domestique : Ubuntu Server « Jammy Jellyfish » 22.04.1 LTS 64 bits - Intel Core i5 2400S @ 2.5 GHz
Hors ligne
#2 Le 05/11/2010, à 13:23
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
Tu copies ou tu déplaces ?
En copiant (copier/coller) le fichier tu crées un nouveau fichier avec les nouveaux droits que tu as spécifiés.
En déplaçant (drag/drop) le fichier ses droits initiaux sont conservés.
Dernière modification par figaro (Le 05/11/2010, à 13:31)
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne
#3 Le 05/11/2010, à 13:42
- blueduck
Re : Permissions Samba : déplacement et copie de fichiers
Merci de me répondre si vite !
Il me semble qu'il préserve les droits initiaux dans les deux cas, mais je me trompe sans doute ; je vérifierai ce soir.
Y a-t-il un moyen de le forcer à modifier les droits lors d'un déplacement ?
Blue Duck
Dernière modification par blueduck (Le 05/11/2010, à 13:42)
Poste de travail : Kubuntu « Impish Indri » 22.10 64 bits - AMD Ryzen 3900X @ 3.8 GHz - Palit GeForce RTX 2070 Super
Serveur domestique : Ubuntu Server « Jammy Jellyfish » 22.04.1 LTS 64 bits - Intel Core i5 2400S @ 2.5 GHz
Hors ligne
#4 Le 05/11/2010, à 13:55
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
Si tu veux améliorer utilise le setgid
Edit : sinon il n'y a réellement problème qu'avec des fichiers provenant d'un client Window. Ces fichiers n'ont pas de droit Unix donc le drag and drop conservera les droits Windows.
Dernière modification par figaro (Le 05/11/2010, à 14:14)
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne
#5 Le 05/11/2010, à 21:31
- blueduck
Re : Permissions Samba : déplacement et copie de fichiers
Bon, alors pour info :
- que je copie ou que je déplace, même combat : les permissions initiales (0644) du fichier créé sur le poste client sous Ubuntu sont préservées sur le serveur Samba, ce qui interdit l'accès en écriture aux autres membres du groupe ;
- en revanche, le fichier transféré sur le serveur est bien attribué au groupe privilégié, ce que je trouve particulièrement vicieux (de faire la modif' de groupe, mais pas de permissions).
Je regarde le post sur ton blog. Je m'attaquerai aux clients Windows après avoir fait fonctionner les Ubuntu comme je veux.
Merci,
Blue Duck
Dernière modification par blueduck (Le 05/11/2010, à 21:32)
Poste de travail : Kubuntu « Impish Indri » 22.10 64 bits - AMD Ryzen 3900X @ 3.8 GHz - Palit GeForce RTX 2070 Super
Serveur domestique : Ubuntu Server « Jammy Jellyfish » 22.04.1 LTS 64 bits - Intel Core i5 2400S @ 2.5 GHz
Hors ligne
#6 Le 06/11/2010, à 08:46
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
Ton problème sera réglé par le setgid (sauf pour les fichiers de clients Windows).
En effet tu as configuré sur ton serveur la façon dont Samba fonctionne pour écrire de nouveaux fichiers (dans le smb.conf), mais tu n'as pas fixé le groupe du dossier qui reçoit les fichiers ce que le setgid te permet de faire: Samba ne peut pas forcer les droits UNIX du dossier et des fichiers copiés dans ce dossier mais seulement ceux d'un nouveau fichier qu'il écrit.
Ce comportement par défaut est tout à fait sain car il préserve les droits (et l'intégrité) du fichier original.
Autant il apparait normal d'intégrer le groupe de partage et de donner au groupe le droit de lecture sur des fichiers partagés, autant il est anormal de donner à ce groupe le droit de modifier les fichiers dont ils ne sont pas les auteurs. Le chmod de 664 est tout à fait incongru à mon avis sur des fichiers partagés et je ne comprends pas bien ton choix. Ce qui est important c'est le droit de lecture ou non c'est tout.
Dernière modification par figaro (Le 06/11/2010, à 11:44)
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne
#7 Le 07/11/2010, à 20:08
- blueduck
Re : Permissions Samba : déplacement et copie de fichiers
Bonsoir,
D'abord, merci figaro pour m'avoir appris l'existence des setuid/gid, que j'ignorais complètement
Seulement, cela n'a pas réglé mon problème puisqu'en gros, si j'ai bien tout compris, cela permet de "bloquer" le nom de l'utilisateur ou du groupe qui sera utilisé pour la création d'un dossier ou d'un fichier. Or, lorsque je déplace/copie un fichier, créé en local, sur le partage Samba de mon serveur, mon groupe primaire est bien modifié en celui du groupe privilégié (grâce à la directive force group du fichier smb.conf) ; pas de problème sur le propriétaire du fichier transféré donc.
En revanche, l'utilisation du setgid (à moins que je l'aie mal fait) n'a pas permis que Samba, lors du transfert, crée un fichier doté des permissions prévues par le smb.conf (create mask = 0664) à la place de celles fixées lors de la création en local (0644).
Autant il apparait normal d'intégrer le groupe de partage et de donner au groupe le droit de lecture sur des fichiers partagés, autant il est anormal de donner à ce groupe le droit de modifier les fichiers dont ils ne sont pas les auteurs. Le chmod de 664 est tout à fait incongru à mon avis sur des fichiers partagés et je ne comprends pas bien ton choix.
Tout-à-fait, j'adhère complètement au comportement par défaut. Mais dans le cadre de mon petit réseau, ma femme (sous Seven, mais j'y travaille ) et moi (sous Ubuntu) stockons nos photos sur un serveur (sous Ubuntu) ; nous avons chacun notre logiciel pour gérer nos albums (Picasa et Digikam), et sommes donc membres du groupe privilégié pour pouvoir les renommer, les taguer, etc. Il faut qu'elle puisse copier de nouvelles photos dans un nouveau dossier depuis l'appareil photo, mais que je puisse de mon côté modifier ces photos pour qu'elle ne se tape pas toute seule le boulot de taguage ; et vice versa.
Les membres occasionnels du LAN ont accès à ces photos en lecture seulement.
Voilà pour les raisons de mon choix
Si les dossiers qu'elle crée en copiant les photos appartiennent bien au bon groupe, mais que ses permissions restent à g=rx, je suis coincé.
Blue Duck
Dernière modification par blueduck (Le 07/11/2010, à 20:11)
Poste de travail : Kubuntu « Impish Indri » 22.10 64 bits - AMD Ryzen 3900X @ 3.8 GHz - Palit GeForce RTX 2070 Super
Serveur domestique : Ubuntu Server « Jammy Jellyfish » 22.04.1 LTS 64 bits - Intel Core i5 2400S @ 2.5 GHz
Hors ligne
#8 Le 08/11/2010, à 08:29
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
En revanche, l'utilisation du setgid (à moins que je l'aie mal fait) n'a pas permis que Samba, lors du transfert, crée un fichier doté des permissions prévues par le smb.conf (create mask = 0664) à la place de celles fixées lors de la création en local (0644).
sudo chmod -R g=rx dossier -> fixe les permissions du groupe mais pour que le groupe écrive mettre rwx au lieu de rx
sudo chmod -R g+s dossier -> pose le setgid
Comme déjà dit Samba ne peut pas forcer les permissions Unix, il faut donc mettre les bonnes permissions Unix sur le dossier et fixer le setgid ensuite.
Il faut qu'elle puisse copier de nouvelles photos dans un nouveau dossier depuis l'appareil photo, mais que je puisse de mon côté modifier ces photos pour qu'elle ne se tape pas toute seule le boulot de taguage.
Cela tu aurais déjà pu le faire en root.
Edit Wiki : Quand un répertoire est setgid, tous les fichiers créés dans ce répertoire appartiennent au même groupe que le répertoire. C'est utilisé par exemple quand plusieurs personnes travaillent sur un projet commun: ils ont alors un groupe dédié à ce projet, et un répertoire setgid appartenant à ce groupe, et ils créent leurs fichiers dans ce répertoire avec les permissions 664: tout le groupe peut alors écrire n'importe quel fichier, vu que tous les fichiers appartiennent au groupe.
Donc pas de problèmes pour les fichiers créés et les copier/coller.
Par contre les fichiers en provenance de Windows en drag/drop poseront peut être des problèmes car ils ne connaissent pas les droits Unix à Richmont !
Dernière modification par figaro (Le 08/11/2010, à 11:52)
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne
#9 Le 10/11/2010, à 02:53
- Yann
Re : Permissions Samba : déplacement et copie de fichiers
Bonsoir figaro, bonsoir blueduck,
je diffère légèrement avec ton avis figaro Je pense que create mask et directory mask devraient marcher, tu peux meme forcer le groupe directement avec samba (et donc éviter le setgid) avec une directive du type "force group".. Mais du coup tu aurais le meme groupe sur toute le partage, le setgid est beaucoup plus flexible, et c'est aussi ce que j'utilise. Il y a également une directive "force directory mode", mais peu flexible, pareillement, car valide pour tout le partage..
Cependant, setgid est utile mais ca permet de conserver le propriétaire, pas les permissions.
Blueduck, pourrait tu poster ton smb.conf? Est ce que tu n'aurais pas accidentellement ajouté la directive "inherit permissions"?
Et pourtant moi, jsuis pas du genre délicat,
Dans un coin de la musse, j'ai posé mon matelas - Paulo Anarkao
Hors ligne
#10 Le 10/11/2010, à 07:38
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
1- je diffère légèrement avec ton avis figaro
Je pense que create mask et directory mask devraient marcher, tu peux même forcer le groupe directement avec samba (et donc éviter le setgid) avec une directive du type "force group"......
2- Cependant, setgid est utile mais ca permet de conserver le propriétaire, pas les permissions.
1- sauf que cela ne marche pas pour les droits du groupe pour les fichiers transférés, marche seulement pour les fichiers créés.
2- setgid force le groupe et les droits du groupe.
Yann relis le post initial SVP avant d'intervenir, merci.
Voila ce qu'il avait posté :
Pour être sûr qu'un fichier créé par un membre de ce groupe privilégié puisse être modifié/supprimé par les autres membres de ce groupe, j'ai utilisé les directives force group, create mask (fixé à 0664) et directory mask (à 0775).
Cela fonctionne très bien lorsque les utilisateurs privilégiés créent des dossiers et des fichiers directement sur le serveur (par exemple avec un clic droit, Nouveau/Dossier) : les fichiers ainsi créés appartiennent à l'utilisateur créateur, au groupe privilégié, et affichent des permissions -rw-rw-r-- ; du coup, les utilisateurs privilégiés autres que le créateur peuvent tout de même modifier/supprimer les fichiers en question.
En revanche, cela ne fonctionne plus dans le cas suivant : mon utilisateur privilégié crée un fichier sur son propre ordinateur sous Ubuntu (avec donc des permissions standard à 0644), puis le déplace/copie sur le serveur. Dans ce cas, les permissions de création sont préservées au lieu de passer à 0664 (*).
Dernière modification par figaro (Le 10/11/2010, à 07:44)
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne
#11 Le 10/11/2010, à 13:35
- Yann
Re : Permissions Samba : déplacement et copie de fichiers
Mmh, effectivement j avais mal lu, j'aurais juré qu'il parlait de copie à partir d'un pc sous windows, et donc http://lists.samba.org/archive/samba/20 … 63429.html (en bas). J'avoue que je savais pas du tout que le setgid forcait les droits également sous samba, merci pour ca, ca me sera utile.
Et pourtant moi, jsuis pas du genre délicat,
Dans un coin de la musse, j'ai posé mon matelas - Paulo Anarkao
Hors ligne
#12 Le 10/11/2010, à 13:48
- figaro
Re : Permissions Samba : déplacement et copie de fichiers
Sans rancune.
Le blog de figaro (astuces diverses et tutos Samba pour débutants)
Le blog de cep (astuces Linux avancées)
Debian Lenny 6.0.1, Ubuntu 10.04.2, Ubuntu Remix 9.10, Ubuntu Netbook 10.04
Hors ligne