cifs mount laptopon

Erdekelne, hogy ki mit hasznal laptopon halozati (cifs) mountra. En regota szenvedek ezzel, a vegeredmeny altalaban az, hogy irok egy scriptet ami megcsinalja amikor kell. De tenyleg igy kell ezt? Az fstab-ba nem szeretem berakni (vagy csak noauto-val), mert lapotpot hasznalok es nem akarok ezzel bajlodni amikor az adott share kozeleben sem vagyok. Aztan meg az umount is problemas, mert nem csak kikapcsolaskor, de mondjuk egy suspend elott is jol jonne (vagy olyankor tortenik "network umount"? nem hiszem...).

Most viszont szeretnem vegre "szepen" megoldani a dolgot, nehany guglizas viszont nem mutatja, hogy lenne erre valami altalanosan hasznalt modszer.

Szoval kene kenem egy olyan cifs mount, ami:
- felmountolja a beallitott konyvtarakat amikor elerhetoek
- nem akasztja meg a rendszeremet amikor mas halozaton vagyok
- automatikus, azaz nem igenyel semmilyen beavatkozast (nem, egy kattintast sem)
- minnel inkabb "gyari" (scriptet irni en is tudok)

Talaltam mar egy ket (fel)megoldast, de egyik sem tetszik igazan. Kivancsi vagyok ki hogy oldja ezt meg, gyanitom sokan vagyunk ezzel a helyzettel (= cifs + Linux laptop).

------------------------------------------------------------------------
update (2013.04.22):

Vegul autofs-sel valoban sikerult megoldani. Korabban valamiert ockodtam tole, de jo dolog ez az autofs. Csak egy script hianyzott belole, hogy a kulonbozo share-eket akkor is fel tudja mountolni, ha azok nem olvashatok anonymous-kent (guest-kent):

Az autofs-ben meglevo /etc/auto.smb-t faragtam at, igy most a /home/*/.config/smb/${key}.credentials helyen keresi a credentials file-t (ahol a "$key" a szerver neve). credentials file-ert lasd a "man mount.cifs"-et:


#!/bin/bash

key="$1"

for P in /bin /sbin /usr/bin /usr/sbin
do
	if [ -x $P/smbclient ]
	then
		SMBCLIENT=$P/smbclient
		break
	fi
done

[ -x $SMBCLIENT ] || exit 1


### per workgroup:
#WORKGROUP=$($SMBCLIENT -gNL $key 2>&1 | grep "^Domain=" | head -1 | sed -e "s/^[^\[]*\[//g" -e "s/\].*//g")
#CREDENTIALS=$(find /home/*/.config/smb/credentials/${WORKGROUP}/{key}.credentials | head -1)

### simplified:
CREDENTIALS=$(find /home/*/.config/smb/${key}.credentials 2> /dev/null | head -1)

opts="-fstype=cifs"
if [ "$CREDENTIALS" ]
  then
    opts="$opts,credentials=$CREDENTIALS"
    LOCAL_USER=$(dirname $CREDENTIALS | sed "s,^/home/\([^/]*\)/.*$,\1,g")
  else
    opts="$opts,guest"
    CREDENTIALS_DIR=""
    CREDENTIALS_DIR=$(find /home/*/.config/smb/ -maxdepth 0 2> /dev/null | head -1)
    if [ -z "$CREDENTIALS_DIR" ]; then 
      # no any credentials file or directory
      exit 1
    fi
    LOCAL_USER=$(dirname $CREDENTIALS_DIR | sed "s,^/home/\([^/]*\)/.*$,\1,g")
fi
opts="$opts,uid=$LOCAL_USER,gid=$LOCAL_USER"

$SMBCLIENT -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
	BEGIN	{ ORS=""; first=1 }
	/Disk/	{
		  if (first)
			print opts; first=0
		  dir = $2
		  loc = $2
		  # Enclose mount dir and location in quotes
		  # Double quote "$" in location as it is special
		  gsub(/\$$/, "\\$", loc);
		  gsub(/\&/,"\\\\&",loc)
		  print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
		}
	END 	{ if (!first) print "\n"; else exit 1 }
	'

------------------------------------------------------------------------
update2 (2013.04.22):

csinaltam is hozza blogbejegyzest kicsit tobb reszlettel:

traktor blogja: autofs + cifs avagy: halozati mount okosan laptopon

Hozzászólások

Es hasznalsz nem public (vagyis guest-kent nem elerheto) smb megosztast is? Mert en most odaig jutok, hogy latom a megosztasokat, de a mount nem megy. Jol sejtem, hogy kell irnom ehhez egy sajat auto.smb-t?

Az autofs amugy kepbe kerult nalam joval korabban, de valahogy nem tetszett. Mar nem tudom regen mi volt vele a bajom. Most kicsit zavar, hogy nem latszik egyszerre minden elerheto share felmountolva, de asszem ezen a konzervativ szemleleten tul kell lepnem... Kicsit maceras, hogy a szerverek nevet tudnom kell es kozvetlenul a /smb alatt a tab nem csinal semmit, de vegulis nincs sok gep..

Nagyobb baj, hogy a kulonbozo share-ek kulonbozo jogosultsaggal valo elereset meg nem latom, hogy fogom vele pontosan megoldani...

Csak le kellett irnom, hogy elgondolkodjak kicsit. ;) A "nem lathato szerverek" problemajat egyszeru megoldani. Csinalok a home-omba egy smb konyvtarat es azon belul szimlinkeket "emlekeztetoul".
valahogy igy:

/home/en/smb/kiskedvenc -> /smb/kiskedvenc

Igy a szimlinkek lathatoak mindig, azokon keresztul meg elerhetoek a szerverek (ha eppen elerhetoek).

/etc/network/if-up.d;if-down.d alá beteszed a megfelelő mountoló scripteket. Aztán amit sikerül mountolnia induláskor attól függően, h melyik hálón van a noti, azt mountolja.

Ha mar ez, akkor reszemrol inkabb a /etc/NetworkManager/dispatcher.d/ de nem tudom mi a kulonbseg igazabol.

De egyelore az autofs megtetszett, csak azzal is van azert egy kis szenvedes, hogy mit hogyan mountoljon (user+jelszo a problemas, foleg ha szeretnel tobb szervert, tobb workgroupot kulonbozo userekkel/jelszavakkal elerni), de megoldodni latszik, csak korbe kell scriptelni... Eredetileg remeltem, hogy valami egyszerubb lesz. Ezt a reszet (user+pass) mashol is meg kellene oldani, nem csak autofs-sel.