Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: CIFS ipv smbmount  (gelezen 4478 keer)

Offline ruujan

  • Lid
CIFS ipv smbmount
« Gepost op: 2008/05/18, 22:23:19 »
Ik heb mijn laptopje bijgewerkt naar Hardy en ik zit met een vervelend probleem. Ik had ooit onder Feisty een scriptje gemaakt om een gedeelde schijf te mounten op een Linux-server.

Sinds Hardy wordt het mounten van shares uitgevoerd door mount.cifs ipv smbmount. mount.cifs heeft echter problemen als de user bestaat op de server, maar een ander uid heeft. Dit kun je ondervangen door tijdens het mount de linux extensions uit te schakelen. In een terminal doe je dit met:

   echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled

Je moet dan echter met su eerst root worden. sudo werkt blijkbaar niet. Dat is vervelend, want mijn scriptje werkt met kdesu. Als ik aangeef dat het moet draaien als root bij "run as different user" dan doet mijn hele script niks. Na de passwordprompt gebeurt er gewoon niets meer. Onder Gutsy en Feisty werkte het script wel op die manier, trouwens.

Hoe krijg ik mijn scriptje nu aan het werk?


Het scriptje:

#!/bin/bash

# script om smaba shares te mounten thuis.



# Is het netwerk actief en verbonden met thuis?
echo "share wordt gemount"
ifconfig | grep -q "inet addr:172.31."
if [ $? = "0" ];
then
   echo "netwerk actief, shares worden gemount."
# eerst even zorgen dat CIFS fatsoenlijk mount ivm uid en gid die afwijken.
   echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
   for i in '/media/digdata'
# '/media/public' '/media/bigdata'
   do
      grep -q $i /etc/mtab
      if [ $? = "0" ];
      then
         echo " $i allready mounted \n"
      else   
         mount $i
#         echo $i gemount
         if [ $? = "0" ] ; then echo "$i: mount succes" ; fi
      fi
   done
# CIFS herstellen
   echo 1 > /proc/fs/cifs/LinuxExtensionsEnabled
else
   echo "netwerk niet actief."

fi

Offline Johan van Dijk

  • Administrator
    • johanvandijk
CIFS ipv smbmount
« Reactie #1 Gepost op: 2008/05/19, 00:37:21 »
Krijg je helemaal geen foutmeldingen als je het script uitvoert in een terminal?

Ik weet verder niet hoe het zit met uid's in combinatie met samba, maar kan je die niet opgeven als mount optie?

Offline ruujan

  • Lid
CIFS ipv smbmount
« Reactie #2 Gepost op: 2008/05/19, 09:03:08 »
Citaat van: Johanvd
Krijg je helemaal geen foutmeldingen als je het script uitvoert in een terminal?

Ik weet verder niet hoe het zit met uid's in combinatie met samba, maar kan je die niet opgeven als mount optie?
Geen foutmeldingen.

Die uid's zijn lastig. Als je via CIFS een share wilt mounten, dan wordt tijdens het gebruik van bestanden de hele tijd de uid van de client meegegeven om te openen e.d. Als een gebruiker met dezelfde naam op de server echter een andere uid heeft (en volgens mij is dat eerder regel dan uitzondering) wordt er dus een bestand geopend met de verkeerde uid. Daar heb je geen toestemming voor en dus kun je niks.

De truc is dat je de LinuxServerExtensions van CIFS uitzet tijdens het mounten. Dan kun je in het mount-commanda de goeie uid en gid meegeven. Als de extensions actief zijn wordt de gid en uid in het mount-commando genegeerd.

Offline ruujan

  • Lid
CIFS ipv smbmount
« Reactie #3 Gepost op: 2008/05/19, 10:10:52 »
Het script werkt dus wel! Alleen wordt de map /proc/fs/cifs pas gemaakt als je de eerste keer iets mount. Even kijken hoe ik dat kan oplossen.

Wordt vervolgd....

Offline ruujan

  • Lid
CIFS ipv smbmount
« Reactie #4 Gepost op: 2008/05/19, 11:12:43 »
modprobe cifs

of cifs toevoegen in /etc/modules

Nu werkt het. Ik heb alleen nog een foutmelding bij het afsluiten. Het lijkt erop dat eerst de netwerkverbinding wordt gesloten en dan pas ge-unmount.

Offline ruujan

  • Lid
CIFS ipv smbmount
« Reactie #5 Gepost op: 2008/05/19, 14:07:51 »
Ook opgelost. Het volgende script unmount alle CIFS-mounts. Even draaien voor je afsluit en geen probleem meer (natuurlijk wel met sudo):

#!/bin/bash

# script om smaba shares te mounten thuis.

MTAB_FILE=/etc/mtab


for mnt in $(grep cifs $MTAB_FILE | awk '{print $1}' )
do
  echo "unmounting $mnt"
   umount $mnt
done