Come posso montare la condivisione Samba come utente non root


14

Esiste un tutorial passo-passo che spiega in dettaglio come smbmount una condivisione Samba per essere utilizzata da un utente non root su un desktop Ubuntu 10.04?

Nota: ci sono numerosi thread nella ricerca di Google che affrontano questo problema apparentemente nuovo. Le istruzioni che funzionavano su Ubuntu 8.04 (o una versione precedente di smbfs) non funzionano più.

Devo trovare qualcosa che sia aggiornato e riproducibile.

Risposte:


13

Uno strumento molto utile per montare facilmente le condivisioni di samba nella cartella principale è SMBNetFS . Con questo strumento puoi accedere alle tue condivisioni samba da quasi tutte le applicazioni semplicemente attraverso un punto di montaggio in casa.

Come usare SMBnetFS:

  • Installa il pacchetto tramite il tuo gestore pacchetti
  • cp /etc/smbnetfs.conf ~/.smb/smbnetfs.conf copia della configurazione standard
  • cp /etc/samba/smb.conf ~/.smb/smb.conf copia la configurazione di samba
  • mkdir ~/sambashare o qualsiasi altro nome per il punto di montaggio
  • smbnetfs ~/sambashare montare le condivisioni sul mountpoint

Purtroppo c'è solo poca documentazione disponibile. Consulta le man smbnetfsopzioni e consulta il file FAQ in /usr/share/doc/smbnetfs.


+1 per i passaggi dettagliati. Spero che funzioni con Eclipse, perché con gvfs Eclipse sicuramente non funziona. Sai per caso quanto SMBnetFS è diverso da smbfs?
Vigilia di Android

2
SMBNetFS utilizza il fusibile. Assicurarsi che gli utenti siano nel fusegruppo.
Takkat,

+1 di nuovo! Gfvs non usa anche FUSE? In che modo è diverso da quello che ho già preimballato (gvfs) con il mio desktop GNOME?
Vigilia di Android

8

Quando usi gnome, puoi semplicemente digitare smb: // url in Nautilus. Normalmente dovrebbero essere installati gvfs-fuse e altri pacchetti gvfs, in modo da poter montare samba direttamente con il browser dei file. Inoltre dovresti trovare tutte le cose montate nella tua cartella ~ / .gvfs. Funziona anche con altri protocolli, file compressi ecc.

gvfs-mount smb://user@server/storage

L'ho provato con eclissi e altri strumenti e funziona. gvfs-fuse deve essere installato.


Grazie ma Eclipse non funzionerà con questo. Ho già provato questo, ecco perché mi chiedevo specificamente di smbmount (un link simbolico a mount.cifs che fa parte del pacchetto smbfs).
Vigilia di Android

2
Quindi eclipse non può accedere a .gvfs nella tua home directory? Per quanto ne so, ogni programma dovrebbe essere in grado di farlo. Correggimi se sbaglio.
matthias.lukaszek,

2

man mountti aiuterà a determinare quali opzioni desideri. Se il sistema Windows sarà sempre disponibile. Puoi semplicemente aggiungere il supporto al /etc/fstabe verrà montato. È possibile consentire all'utente di montare e smontare la partizione come richiesto utilizzando le opzioni user,noauto. Per consentire ad altri di smontarlo, cambia userinusers .

Autofs supporta anche montaggi su richiesta usando samba. L'incantesimo dipende da quali directory vuoi montare quando. L'ho eseguito con successo in un ambiente di sviluppo.

EDIT: Se è necessario farlo per molti utenti, suggerisco di utilizzare autofs per eseguire il montaggio. Questo non richiede modifiche a fstab. Ottenere credenziali per i vari utenti può essere un problema. Uso una struttura di directory nel modulo /net/$HOST/$USERper i miei montaggi. Autofs è configurato per/net/$HOST parte del mount e monta automaticamente le directory sottostanti secondo necessità.

Approcci di montaggio particolari dipendono dalle tue esigenze. Ho avuto casi in cui gli utenti avevano bisogno che la loro directory Desktop fosse montata sul server, sebbene i montaggi tipici siano basati su server.

Per organizzazioni di grandi dimensioni con molti utenti può avere senso spostare le directory su un server Linux e utilizzare Samba per condividere i file con gli utenti Windows. Non ho provato il contrario, ma potrebbe essere possibile.


Funziona, ma è necessario l'accesso come root per cambiare fstab. Anche se sono root, tieni presente che è poco pratico se devi farlo per molti utenti, ognuno con una condivisione specifica da montare (come in una grande organizzazione in cui ogni utente ha una condivisione personale in un file server centralizzato).

0

Ho trovato questa domanda mentre cercavo la magia che ho eseguito di recente per fare esattamente questo per uno dei miei utenti. Il mio flusso di lavoro differisce notevolmente dalle altre risposte. Si noti, tuttavia, si tratta del caso più semplice possibile.

Supponendo che il tuo nome utente sia aee la tua casa sia/home/ae

1) Configura smbfs:
mkdir /home/ae/.smb

1a) Se sono necessarie le credenziali di accesso a Windows, creare e modificare il file: /home/ae/.smb/smbnetfs.confper avere contenuti:

auth winuser "winpassword"

winuserè l'utente creato sul computer Windows a cui si desidera accedere. winpasswordè la password dell'utente per accedere a Windows su quel computer.

2) Crea il tuo punto di montaggio:
mkdir /home/ae/nethood

3) Eseguire il comando smbnetfs:
smbnetfs /home/ae/nethood


Nota l'intero "vicinato di rete" verrà visualizzato sotto /home/ae/nethoodcon i gruppi di lavoro che sono il primo strato di sottodirectory.

Tutti gli elenchi di seguito sono stati copiati dalla mia navigazione di cartelle come utente non privilegiato su un host Ubuntu. Nome utente e gruppo cambiati in ae. sudonon è mai stato usato. I computer Windows si trovano su una rete Windows informale e le cartelle condivise sono protette da utente / password (sul computer Windows utilizzando il nome utente e la password di Windows).

$ cd nethood
$ ls -alh
total 12K
drwxrwxrwx 9 ae   ae     0 Dec 31  1969 .
drwxr-xr-x 9 ae   ae    21 Jul 28 11:49 ..
drwxrwxrwx 2 root root   0 Dec 31  1969 WORKGROUP

Sfoglia il gruppo di lavoro WORKGROUP:

$ cd WORKGROUP
$ ls -alh
total 0
drwxrwxrwx 2 root root  0 Dec 31  1969 .
drwxrwxrwx 9 root root  0 Dec 31  1969 ..
lrwxrwxrwx 1 root root 11 Dec 31  1969 HTPC -> ../HTPC
lrwxrwxrwx 1 root root 14 Dec 31  1969 NEWPC -> ../NEWPC

Cambia directory in computer e tutte le cartelle condivise verranno elencate e accessibili normalmente.

$ cd NEWPC
$ ls -alh
total 0
drwxrwxrwx 2 root root 0 Dec 31  1969 .
drwxrwxrwx 9 root root 0 Dec 31  1969 ..
drwxrwxrwx 2 root root 0 Dec 31  1969 Desktop
drwxrwxrwx 2 root root 0 Dec 31  1969 Users

E i file:

$ cd Desktop/
$ ls -alh
ls: cannot access desktop.ini: No such file or directory
total 30M
drwxrwxrwx 2 root root     0 Dec 31  1969 .
drwxrwxrwx 2 root root     0 Dec 31  1969 ..
-rwxr--r-- 1 ae   ae    1.5K Jan 25  2013 Command Prompt.lnk
-????????? ? ?    ?        ?            ? desktop.ini
-rwxr--r-- 1 ae   ae    156K May 28  2013 Download %25285%2529.iif
-rwxr--r-- 1 ae   ae    2.4K Jul 24 12:28 Google Chrome.lnk
-rwxr--r-- 1 ae   ae     178 Feb  4  2013 import orders.bat
-rwxr--r-- 1 ae   ae    2.3M Mar 30  2012 msvc2008_x86_vcredist_x64.exe
drwxr-xr-x 2 ae   ae       0 May 20  2014 OpenOffice 4.1.0 (en-US) Installation Files
-rwxr--r-- 1 ae   ae    406K Jun  6  2013 Paypal_Jan_1_2012_to_Dec_31_2012.iif
-rwxr--r-- 1 ae   ae     15M May  8  2012 php-5.4.3-Win32-VC9-x86.zip
-rwxr--r-- 1 ae   ae    1.9K Jul 24 13:03 PSPad.lnk
-rwxr--r-- 1 ae   ae    1.1K Jul 24 12:31 VB Demo.lnk

Notare che le directory precedenti hanno proprietà root root. La proprietà del file sarà uguale al tuo utente.

Nessun altro utente sarà in grado di accedere alle cartelle indipendentemente dal punto di montaggio o dalla proprietà o dalle autorizzazioni di quella cartella. Se il tuo utente può "scrivere" in quella cartella (ed è vuota), smbnetfs monterà lì il vicinato della rete e non consentirà l'accesso a nessun altro, neanche root. Per rootavere accesso, è necessario su ae.


Se non ci sono cartelle condivise, la directory del computer sarà vuota.

Se non si dispone delle credenziali per il computer Windows, è possibile che venga visualizzato l'errore:
ls: cannot open directory .: Input/output error

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.