Feinter l'affichage de la taille d'un partage sur Samba

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search
Samba

1 Introduction

J'ai un collègue qui s'est retrouvé dans une situation assez délicate. Je vous explique la situation :

  • 2 points de montages dans /mnt dont un imbriqué dans l'autre.
  • 1 partage sur le principale

Lorsque le point de montage principale est full, ont ne peut plus rien copier, même si la 2ème imbrication a encore de l'espace de libre. Pour ceux qui n'ont toujours pas compris :

  • /mnt/ : 30 Mb restant
  • /mnt/disk1 : 10Gb restant
  • share : /mnt/

Le share me dit qu'il ne peut pas copier plus de 30 Mb, même dans /share/disk1.

2 Solution

Voici une solution qui permet d'outrepasser le fait que Windows va analyser la taille restante du dossier partagé avant de copier ce que l'on souhaites. Dans le fichier de configuration de Samba, ajustez votre partage comme ceci :

Configuration File /etc/samba/smb.conf
...
[Share]
   comment = Share file space
   path = /mnt/shares/Share
   read only = no
   public = yes
   guest ok = yes
   dfree command = /etc/samba/dfree   dfree cache time = 3600
   vfs objects = recycle
   create mask = 0775
   directory mask = 0775
   #force user = nobody
   #force group = Team
   recycle:exclude = *.tmp *.temp *.o *.obj ~$*
   recycle:exclude = *.tmp *.temp *.o *.obj ~$*
   recycle:keeptree = True
   recycle:touch = True
   recycle:versions = True
   recycle:noversions = .doc|.xls|.ppt
   recycle:repository = .recycle
   recycle:maxsize = 0
   admin users = @admins
   inherit permissions = Yes
   #case sensitive = no
   #preserve case = yes
...

dfree est l'argument qu'il faut pour qu'au démarrage du démon Samba, il détermine la taille à afficher pour un partage donné :

Configuration File /etc/samba/dfree
#!/usr/bin/env bash
df -Pk $1 | tail -1 | awk '{print $2" "$4}'

Puis appliquez les bons droits :

Command chmod
chmod 700 /etc/samba/dfree

3 References

http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html