venerdì 28 agosto 2009

Samba: montare uno share senza essere root

Si si si sembra facile...
lancio il comando:
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

e ottengo:
mount error: permission denied or not superuser and mount.cifs not installed SUID

La man page di mount.cifs dice che il comando puo' essere impostato SUID root per consentire agli utenti di montare share remoti.
Andiamo a vedere...porka puzzola...mount.cifs e' gia' settato SUID root.
Trovo qualche indicazione aggiuntiva: il mount point deve essere scrivibile dall'utente che esegue il mount:
chmod 777 /mnt/mountpoint
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

ma purtroppo ottengo ancora:
mount error: permission denied or not superuser and mount.cifs not installed SUID

Purtroppo quasi tutte le guide si fermano qui con un sacco di punti interrogativi e di invocazioni di sfere celesti.
Quello che si sono dimenticati quasi tutti di dire e' che non basta che il mount point sia scrivibile da parte dell'utente...l'utente deve anche esserne il proprietario:
chmod 777 /mnt/mountpoint
chown UTENTE_CHE_ESEGUE_IL_MOUNT /mnt/mountpoint
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

L'operazione viene finalmente completata con successo.

9 commenti:

Pacey ha detto...

mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)

Francesco Conti ha detto...

Potrebbe essere qualsiasi cosa ma un tentativo lo possiamo fare...esegui il comando:

tail -f /var/log/messages

Cerca il momento in cui hai ricevuto l'errore:

Oct 23 21:15:40 server kernel: CIFS VFS: cifs_mount failed w/return
code = -12
Oct 23 21:19:43 server kernel: Status code returned 0xc0000205
NT_STATUS_INSUFF_SERVER_RESOURCES
Oct 23 21:19:43 server kernel: CIFS VFS: cifs_mount failed w/return
code = -12

Se hai qualcosa di simile significa che la colpa e' della macchina windows che non permette a linux di montare lo share.
La soluzione potrebbe essere la seguente.

Controlla l'Event Log della macchina windows che ha generato l'errore (sezione System). Dovresti avere una riga di errore con origine Srv e come testo qualcosa del genere:

Il parametro di configurazione del server "irpstacksize" e' troppo piccolo per usare una periferica locale. Si prega di aumentare il valore di questo parametro.

Se hai questo errore nella macchina che non consente a linux di montare il suo share segui queste istruzioni:

Bisogna modificare o creare questa voce nel registry di Windows:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer
\Parameters\IRPStackSize

If the voce esiste, aumenta un po' il valore (diciamo 15 o 18 per esempio). Se la voce non c'e' crea una nuova DWORD in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer
\Parameters\ e chiamala IRPStackSize.

Doppio click sulla voce appena creata per impostarne il valore (iniziamo con 15). Seleziona anche la voce DECIMALE e non ESADECIMALE.

A questo punto riavvia la macchina: se eseguendo il mount da linux si presenta ancora l'errore aumenta poco a poco il valore della chiave sopra descritta.

Pacey ha detto...

Non ho nulla nel log, e inoltre si tratta di un NAS.

Linux comunque me le monta se ci clicco sopra su nautilus (poi lui crasha/ha problemi nel trasferimento file), quindi vengono create le cartelle in .gvfs e all'interno di queste ci navigo semnza problemi...

Solo volevo evitare di dover andare dentro a nautilus solo x montare le cartelle e poi far quel che devo via console....

Francesco Conti ha detto...

Riesci ad accedere in ssh alla NAS, ha un sistema di log? Che modello e'?

Pacey ha detto...

Niente ssh.

La versione del firmware che c'è su è questa NAS-BASIC48B6, LOADER 69, M9, 2007-8-15

Francesco Conti ha detto...

Per caso hai Windows Vista?

Pacey ha detto...

Assolutamente no, ma questo che c'entra?

Il collegamento è Ubuntu 9.10 (so unico sul notebook) - router - NAS

Francesco Conti ha detto...

Scusa mi sono incartato e dovevo chiederlo a un altro :)
Forse bisognerebbe aggiornare il firmware (se ne esistono di piu' recenti)

Pacey ha detto...

Eh no... l'ho giusto fatto un mese o due fa.

Vabè... niente continuo cm ho fatto finora...