Accedere a cartelle condivise di windows da linux
Scrivo in queste poche righe su come poter montare in modo permanente uno share di rete windows (o di un altro linux con samba) su un computer linux.
Tenete presente che questa pagina stretta impone di andare a capo con righe anche brevi, quindi indichero’ con il segno $$ l’inizo di una riga, quindi il comando
$$ //NomeServer/NomeShare /MountDir smbfs credentials=/home/MIOUTENTE/.smbaccess,gid=SambaGroup 0 0
e’ da scrivere su una riga unica.
Per montare uno share samba su un pc linux da shell si possono usare indifferentemente il comando smbmount oppure il comando mount -t smbfs, entrambi i comandi lavorano nello stesso identico modo, per comodita’ usero’ smbmount.
esempio:
$$ smbmount //NomeServer/NomeShare /MountDir -o username=MioUsername,password=MiaPassword
equivalente a
$$ mount -t smbfs //NomeServer/NomeShare /MountDir -o username=MioUsername,password=MiaPassword
MioUsername e MiaPassword sono l’utente e la password necessari per poter accedere agli share del server, NomeServer indica il nome del pc windows e NomeShare la risorsa condivisa, MountDir e’ la directory sul pc linux che verra’ usata come punto di mount, MountDir puo’ non essere vuota, ma dopo il comando di mount il suo contenuto non sara’ piu’ accessibile perche’ sara’ occupata dalla directory //NomeServer/NomeShare, fino a che non verra’ fatto un umount.
Tenete presente che NomeServer deve poter essere risolto, quindi, o si carica in un dns 8se lo avete), o si inserisce la corrispondenza nome <-> indirizzo ip nel file /etc/host del pc linux o si usa al posto del nome l’indirizzo ip del server windows, fate come meglio vi torna comodo, l’importante e’ che un
$$ ping NomeServer
risolva l’indirizzo della macchina windows..
Il fatto di fornire user e password e’ subordinato al tipo di security che e’ impostata sullo share di rete, se lo share non ha password ovviamente non ci sara’ bisogno di fornirla, se la condivisione appartiene ad un windows che e’ parte di un domino dovremo fornire la user e la password di logon al domino.
Il comando smbmount non ha effetti permanenti, al riavvio del pc il mount va’ perduto e dovra’ essere eseguito di nuovo.
Per rendere il mount permanente si puo’ inserire un’apposita voce nel file /etc/fstab che assomigliera’ a qualcosa del genere:
# /etc/fstab: static file system information.
#
proc /proc proc defaults 0 0
/dev/hdc6 / ext3 defaults,errors=remount-ro 0 1
/dev/hdc7 /home ext3 defaults 0 2
/dev/hdc5 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
#
# smbmount
#
//NomeServer/NomeShare /MountDir smbfs username=MioUsername,password=MiaPassword 0 0
l’ultima riga nel file indica il mount dello share samba, e si possono inserire in /etc/fstab quante righe si vogliono, una per ogni share di rete da montare.
Fate attenzione, fra username ed i parametri successivi, prima e dopo la virgola NON CI VOGLIONO SPAZI.
C’e’ da notare che /etc/fstab e’ leggibile da tutti, e forse non e’ una buona idea lasciare in chiaro le credenziali di accesso, il miglior sistema e’ nasconderle nella propria home directory facendo cosi: creare per prima cosa un file di nome .smbaccess (il punto all’inzio del nome serve a renderlo invisibile) nella propria home, modificare i permessi a quel file di modo che solo l’utente possa leggerlo e scriverci user e password dello share windows, fate cosi:
$$ echo username=MioUsername > /home/MIOUTENTE/.smbaccess
$$ echo password=MiaPassword >> /home/MIOUTENTE/.smbaccess
$$ chmod 600 /home/MIOUTENTE/.smbaccess/.smbpasswd
Una volta che il file e’ creato modificate la riga di /etc/fstab in questo modo:
$$ //NomeServer/NomeShare /MountDir smbfs credentials=/home/MIOUTENTE/.smbaccess 0 0
da notare che si puo’ usare il file .smbaccess anche con il comando da shell:
$$ smbmount //NomeServer/NomeShare /MountDir -o credentials=/home/MIOUTENTE/.smbaccess
Il primo problema in cui ci troviamo appena montato lo share di rete e’ che, essendo il mount fatto da root, solo root puo’ andare a leggere e scrivere negli share, gli altri utenti potranno solo leggere, per poter consentire anche la scrittura all’utente “Arabai” che si trova nel gruppo “MiseriUtenti” si devono specificare userid o groupid in fase di mount, aggiustiamo di nuovo il file /etc/fstab:
$$ //NomeServer/NomeShare /MountDir smbfs credentials=/home/MIOUTENTE/.smbaccess,uid=Arabai,gid=MiseriUtenti 0 0
al posto dell’utente e del gruppo si possono usare i corrispondenti numerici, funzionera’ ugualmente.
Se ci sono piu’ utenti che devono e/o possono accedere agli share di rete puo’ essere conveniente creare un gruppo “SambaGroup” ed indicare quello in /etc/fstab senza specificare l’utente, una cosa tipo questa:
$$ //NomeServer/NomeShare /MountDir smbfs credentials=/home/MIOUTENTE/.smbaccess,gid=SambaGroup 0 0
Alcuni consigli: se avete problemi a montare le directory di rete al boot provate a farlo con il comando smbmount da shell, se quello non funziona non funzionera’ nemmeno quello in fstab, in pratica usare smbmount come “debugger”
Un altro problema comune e’ quando al comando mount -t smbfs si riceve un errore “file not found“, questo puo’ dipendere dal tipo di distribuzione alcune cercano i comandi smbmount e smbmnt nelle directory sbagliate, provate a vedere se un
$$ ln -s /usr/bin/smbmnt /bin/smbmnt
$$ ln -s /usr/bin/smbmount /bin/smbmount
risolve il problema.
Altro problema puo’ essere se da un utente NON root non si riesce a fare il mount dello share, questo puo’ dipendere dal suid bit non settato sui comandi smbmnt, proviamo con un
$$ chmod u+s /usr/bin/smbmnt
a vedere se si risolve, stesso dicasi se un utente NON root non riesce a smontare il volume di rete, con un
$$ chmod u+s /usr/bin/smbumount
si dovrebbe risolvere anche questo.
[...] P.S.1:quello che è giusto è giusto, avevo dimenticato di nominare il creatore della guida che ha fatto da spunto al mio post: LINK. [...]
Grazie delle guida
molto utile, la ho provata e sono riuscito a far loggare con permessi di scrittura un utente non ROOT in una share win, però non riesco a far loggare uttti gli utenti appartenenti ad un gruppo prescelto, se lascio solo gid in fstab niente da fare ricevo sempre il messaggio di accesso in scrittura non permesso con qualsiasi utente del gruppo. Uso debian etch e l’ultimo samba stabile installato dai repo ufficiali.
Help me.
Come posso montare una risorsa windows 2000/XP sul server Linux, quando l’utente del PC windows no ha attivato risorse da condividere. NB: Comunque conosco la password di administrator (sono io) di ogni PC della LAN.
E’ possibile fare:
smbmount //NomeServer/NomeShare /MountDir -o username=administrator,password=adminPassword
o ancor meglio
smbmount //NomeServer/C$ /MountDir -o username=administrator,password=adminPassword
Non sempre mi è possibile su alcuni PC, forse perchè hanno attivato un controllo + stretto sull’accesso ?
Gli share con il dollaro C$,D$ e cosi via DOVREBBERO essere attivi per default, anche se e’ possibile disabilitarli con apposite chiavi di registro.
Oppure c’e’ un firewall attivo sui windows in questione.
Da altre macchine queste risorse condivise sono accessibili ?
[...] L’articolo completo si trova su SpippolAzione.net [...]
[...] Link [...]