Bonjour,
Le sujet du topic est un peu flou. Je m’explique…
J’ai créé un partage SMB avec Samba. Il me permet de partager un répertoire appartenant à root:sambagrp de permissions 2775 (setgid et écriture pour le groupe).
ls -ld /srv/samba/blabla
drwxrwsr-x 8 root sambagrp 4,0K 10 févr. 12:22 blabla
Seuls les membres du groupe sont autorisés à se connecter au partage que j’ai configuré de la façon suivante :
[code][partage]
comment = blabla
browseable = yes
path = /srv/samba/blabla
read only = no
create mask = 0664
force create mode = 0664
directory mask = 2775
force directory mode = 2775
valid users = +sambagrp[/code]
Cela fonctionne « bien ». Seuls les membres du groupe peuvent s’y connecter. La lecture est autorisée, l’écriture également. Les droits des nouveaux fichiers sont bien 0664 et ceux des répertoires sont bien 2775. Le setgid joue son rôle et les nouveaux fichiers appartiennent au groupe sambagrp et ont pour propriétaire le membre du groupe qui l’a créé. En supposant user1 et user2 membres du groupe sambagrp : l’un peut écrire un fichier et l’autre modifier ce même fichier sans aucun problème (ce qui est l’effet désiré).
Corrigez-moi si je me trompe mais j’ai compris, à la lecture du man smb.conf(8) que « create mask » et « directory mask » permettent d’empêcher des droits supérieurs (un masque inversé en somme) tandis que « force create mode » et « force directory mode » permettent de confier au minimum les droits indiqués. En choisissant des valeurs identiques, j’espérais que les droits soient toujours les mêmes…
Mon problème :
Une fois le partage monté, tout se passe comme je viens de le décrire si je fais :
touch /media/mon_partage/test
# puis sur le serveur
ls -l /srv/samba/blabla/test
-rw-rw-r-- 1 user1 sambagrp 0 10 févr. 12:33 test
Par contre, les droits ne sont pas conservés et le setgid ne remplit pas son rôle si le fichier est déjà créé et que je le déplace :
touch /home/user1/test
mv /home/user1/test /media/mon_partage/
mv: préserve les permissions pour « /media/mon_partage/test »: Permission non accordée
# puis sur le serveur
ls -l /srv/samba/blabla/test
-rw-r--r-- 1 user1 user1 0 10 févr. 12:33 test
# Il manque le droit d'écriture pour le groupe et le groupe est mauvais...
L’erreur qui s’affiche est pénible car elle empêche la suppression de du fichier source alors que le déplacement a bien eu lieu. Qui plus est, elle indique que les permissions ne peuvent être conservées alors qu’elles le sont… Et c’est justement mon problème. J’ai l’impression que mon paramétrage fait office de consigne pour la création d’un nouveau fichier mais n’empêche en rien de sortir du passage protégé lorsqu’on déplace des fichiers. J’en profite pour signaler que, côté client, je peux tout à fait faire un chmod 777
sur un fichier et ça ne pose aucun problème. J’aimerais assez l’interdire. Disons que c’est la question bonus de mon topic ^^ Il me semble que c’est le même problème mais les chmod de mes utilisateurs arrivent moins souvent que les couper/coller vers le partage.
Avez-vous une idée sur la nature de mon problème et sur la façon d’y remédier ? Merci d’avance !