[Résolu] Samba : Ecriture ok mais modif bloquée

Bonjour,

Utilisateur de Debian depuis plusieurs années, j’ai, depuis mon passage à etch un problème agaçant. Sur mon serveur de fichier etch :

  • Je peux écrire un fichier dans un répertoire partagé, tant à partir de windows XP, 2000 que de kubuntu.
  • Je peux lire ce fichier sans restriction.
  • Si je veux le modifier :
    • De linux, quel que soit le programme utilisé, j’ai un message me signalant que je n’ai pas le droit d’écrire,
    • De Windows, le fichier est attaché par un autre programme ou un autre utilisateur.

Les logs ne signalent pas d’erreur. J’ai désactivé winbind au cas où.

Sur le serveur, j’utilise shorewall, mais sa désinstallation n’a rien résolu.
A partir de kubuntu kde 4.2, j’utilisais smb4k 0.10.0, j’ai essayé le montage direct (dans fstab) rien à faire.

Bien sur, j’arpente le web depuis plusieurs semaines et je n’ai pas rencontré le même problème… Mais, il y a tant de chemins!

Même le forum ubuntu semble sec… :frowning:

Qu’est-ce que j’ai bien pu oublier? :unamused:

Voici mon smb.conf :

[global]

   workgroup = mongroupe

   server string = %h server

   dns proxy = no

   log file = /var/log/samba/log.%m

   max log size = 1000

   syslog = 0

   panic action = /usr/share/samba/panic-action %d


   security = share

   encrypt passwords = true

   passdb backend = tdbsam

   obey pam restrictions = yes

   guest account = machin
   invalid users = root

   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .


   socket options = TCP_NODELAY


#Compatibilités diverses
   #unix charset = UTF-8
   #display charset = UTF-8
   dos charset = 1255


[homes]
   comment = Home Directories
   browseable = no
   writable = no
   create mask = 0700
   directory mask = 0700
   valid users = %S


[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   public = no
   writable = no
   create mode = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no


[commun]
    comment = Partage 1
    path = /u/commun
    browseable = yes
    read only = no
    ;guest ok = yes
    guest only = yes
    writeable = yes

[partage]
    comment = Partage 2
    path = /u/partage
    browseable = yes
    read only = no
    ;guest ok = yes
    guest only = yes
    writeable = yes

[webs]
    comment = Sites webs
    path = /www
    browseable = yes
    read only = no
    ;guest ok = yes
    guest only = yes
    writeable = yes
    create mask = 0777

[mathieu]
    comment = Partage 3
    path = /u/toto
    browseable = yes
    read only = no
    ;guest ok = yes
    guest only = yes
    writeable = yes

Voici la partie montage du fstab :

//192.168.2.1/commun /home/bernard/Apartages/commun cifs rw,exec,iocharset=utf8,uid=1000,gid=1000,credentials=/home/bernard/.smbcredential 0 0 //192.168.2.1/partage /home/bernard/Apartages/partage cifs rw,exec,iocharset=utf8,credentials=/home/bernard/.smbcredential 0 0 //192.168.2.1/webs /home/bernard/Apartages/webs cifs rw,exec,iocharset=utf8,uid=33,gid=33,credentials=/home/bernard/.smbcredential 0 0 //192.168.2.1/mathieu /home/bernard/Apartages/mathieu cifs rw,exec,iocharset=utf8,uid=1002,gid=1002,credentials=/home/bernard/.smbcredential 0 0

comme tu n’as pas le même paramétrage sur tous les partages.

sur lesquels rencontres tu le problème ?

J’ai essayé divers paramétrages, mais j’ai le même sur tous les partages. J’utilise aussi sur mon réseau 3 autres machines, 2 sous windows XP et une sous Windows 2000 qui elles travaillent sur des fichiers dans commun et partage et qui présentent le même problème.
Il s’agit donc d’un paramétrage du serveur (peut-être pas samba d’ailleurs) mais je n’arrive pas à piéger lequel.
Je voudrais éviter de reconfigurer toute la machine.

Comme les dossiers partagés sont en accès guest, c’est guest qui écrit à chaque fois et par défaut guest c’est nobody. Comme dans ton fichier smb.conf tu as fixé le guest account à machin cela explique que tu n’as pas le droit de toucher aux fichiers qui appartiennent donc à machin.

Seuls root et machin peuvent faire quelque chose sur ces fichiers et en particulier en changer le propriétaire et/ou le groupe.

Ok figaro, merci de ta réponse. Mais ce que je n’ai pas dit c’est que machin est l’utilisateur 1000 et correspond à mon nom d’utilisateur.

D’autre part, je n’ai ce problème que depuis que j’ai migré de sarge à etch suite à un pb imprévu. J’ai été obligé alors de faire une installation complète du système. Les dossiers partagés sont sur un second disque qui lui n’a pas été modifié.

les droits sur les fichiers partagés avec samba sont un mélange entre le umask, les droits linux et les droits du partage.

deja tu peux verifier les drois linux sur le fichier en question avec un ls -l pour voir comment ils sont mis lors de la création des fichiers et des dossiers.

chez moi j’ai résolu de genre de problèmes avec les droits samba avec cette conf assez simpliste sur le partage et en activant les acl posix sur les dossiers et fichiers partagés afin de gérer plus finement que les droits standards linux. et en oubliant pas les options de recursivité .

[data] comment = data path = /var/data browseable = Yes writeable = Yes public = No

comme sous windows en fait, il est conseillé de faire un partage accessible à ‘presque’ tout le monde mais de gérer plus finement la sécurité des fichiers et des dossiers dans le partage.

Avant de me lancer dans des modifs, j’ai refait un essai simple : au moyen de dolphin (j’utilise kde) je crée un fichier vide dans un répertoire partagé (commun). Quand je me connecte sur le serveur, les droits sont 744. Quand avec dolphin j’affiche les droits, il n’affiche pas les droits, il faut que j’ouvre la fenêtre des droits avancés. Les droits sont bien ceux que je veux mais quand je ferme la fenêtre, j’ai le message “impossible de modifier les droits d’accès pour {le fichier}”.

Il y a effectivement une subtilité que je ne comprend pas.

Si avec vi je crée un fichier dans ce même répertoire, il est bien écrit. Mais lors de la modification, il m’annonce que je n’ai pas les droits d’écriture!

Précisions :

Pour avoir un dossier partagé “pub” à accès public il faut rajouter dans la section [global] les deux lignes:

map to guest = bad user
guest account = nobody

et ensuite créer un dossier “pub” avec un chmod de 755 et avec les options du smb.conf ci-dessous:

[pub]
path = /path/pub
browseable = yes
public = yes
guest ok =yes
read only = yes

Il y a un problème avec un serveur public quand la connexion est faite par un invité (guest) : Tous les fichiers créés par ce guest lui appartiennent et ne peuvent être modifiés que par lui. Le nom de guest est défini par l’option guest account = xxxxx

Le guest account étant par défaut nobody les fichiers appartiendront donc à nobody. Seul root pourra changer le propriétaire.

Faire un serveur public n’est pas conseillé de toute façon…

PS: d’autre part tu devrais mettre security = user au lieu de security = share qui est déprécié, et ton user “machin” est-il utilisateur samba ? Tu auras toutes les détails de comment faire fonctionner samba sur ce post et ceux qui lui font suite :
michel-eudes.net/blog/index. … ous-ubuntu

Merci à tous les deux.

J’ai décidé de monter un serveur Etch ou lenny à côté pour tester mes paramètrage. Je quitte provisoirement le fil de la discussion mais je vous tiendrai au courant des résultats

Bonjour,

j’ai beaucoup lu et j’ai progressé un peu. En modifiant les partages de cette manière :

[partage]
comment = Partage Maison
path = /u/partage
public = yes
writeable = yes

et en ne changeant rien au reste de smb.conf, j’ai rétabli l’accès complet des machines Windows aux partages. Mes oreilles vont se calmer :smt041

Il me reste à comprendre pourquoi ma machine Kubuntu ne veut pas modifier des fichiers qu’elle sait créer et supprimer.

A +

regardes toujours les droits unix (depuis le serveur) sur les fichiers créés pour être sur

Comme déjà dit :

[quote]Il y a un problème avec un serveur public quand la connexion est faite par un invité (guest) : Tous les fichiers créés par ce guest lui appartiennent et ne peuvent être modifiés que par lui. Le nom de guest est défini par l’option guest account = xxxxx

Le guest account étant par défaut nobody les fichiers appartiendront donc à nobody. Seul root pourra changer le propriétaire.[/quote]

Merci figaro,

J’avais traduit le nom du guest account par “machin”.

Mais si j’ai bien compris, si tu imposes guest account = xxxx, tous les utilisateurs, qui écriront dans ton partage seront “xxxx” et si le même qui a créé le fichier veut le modifier, il sera encore “xxxx”, donc il ne devrait pas y avoir problème…

bonjour,

Donc aujourd’hui sur le réseau seul mon PC kubuntu ne peut pas modifier un document qu’il a écrit mais il peut l’effacer. Il m’est venu un doute : pour tester j’ai installé kubuntu sur des partitions reiserfs. Cela fonctionne à merveille mais cela pourrait-il avoir une influence?
Je n’ai pas trouvé de lien pour le moment, mais il semble bien que ce soit la configuration de ma machine qui pèche. Je précise que je n’ai pas de pare feu d’installé dessus.

Je creuse :mrgreen:

J’ai construit un nouveau PC. J’ai installé Kubuntu 9.04 et je n’ai plus de problème :blush: .

J’y comprend rien.

Je marque résolu parce que cela fonctionne mais je ne comprend pas ce que j’avais pu faire dans la config précédente pour que le client samba bloque.
Je n’ai rien changé sur le serveur ???.