Samba mount con password richiesta come utente non root


17

Voglio montare una condivisione SMB protetta da password (servita da un computer Windows). La condivisione è protetta da un nome utente e una password e potrei non scrivere la password in un file, desidero che mi venga richiesta la password al momento del montaggio.

Ho bisogno di una soluzione che funzioni anche quando l'utente sul computer client non dispone di privilegi di amministratore, quindi qualunque metodo venga utilizzato per montare la condivisione non deve consentirgli di ottenere i permessi di root. L'installazione iniziale può essere eseguita come root. Gli utenti devono essere in grado di specificare nomi di server arbitrari. Il mio bisogno immediato è con Ubuntu 12.04, ma più ampia è una soluzione applicabile, meglio è.

Il client è senza testa, quindi sto cercando uno strumento da riga di comando.

Cosa ho provato:

  • mount.cifs: mentre può essere impostato come setuid root, i suoi autori non lo considerano sicuro . L'esecuzione in sudoha lo stesso problema.
  • smbnetfs, fusesmb: Non sono riuscito a convincere nessuno dei due a chiedermi una password.
  • Nautilus e gvfs: gvfs-mount smb://servername/sharenamefallisce con Error mounting location: volume doesn't implement mount.

Come posso montare una condivisione Samba dalla riga di comando, come utente non root, con una richiesta di password?


1
Uno dei principali sviluppatori sembra aver allentato la propria posizione sui problemi setuidi. Estratto: "Il codice è stato sostanzialmente rielaborato e dovrebbe essere molto più sicuro di quanto non fosse in precedenza. Ora privilegia la separazione in modo tale che la maggior parte del processo di montaggio venga eseguita come utente non privilegiato, e se collegato contro le lib lib giuste, con funzionalità potate al minimo. A questo punto, direi che è abbastanza sicuro che non è più necessario impedirgli di installare setuid root ". fonte: lists.samba.org/archive/samba/2010-April/154935.html Ho pensato che avrei dovuto farlo notare.
Tim

Risposte:


20

"Errore nella posizione di montaggio: il volume non implementa il montaggio" apparentemente si traduce in "Ho bisogno di D-Bus ma non è disponibile". (Grazie al collega guru di Venturax per queste informazioni.) All'interno di una sessione SSH, posso usare a gvfs-mountcondizione che dbus-daemonvenga avviato per primo e che la variabile di ambiente DBUS_SESSION_BUS_ADDRESSsia impostata.

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mounte altre utility GVFS devono parlare tutte con la stessa sessione D-Bus. Pertanto, se si utilizzano più sessioni SSH o in caso contrario si utilizzano montaggi tra sessioni di accesso, è necessario:

  • avviare D-Bus la prima volta che è necessario, al più tardi;
  • fare attenzione a non far terminare D-Bus con la sessione, purché ci siano filesystem GVFS montati;
  • riutilizzare la sessione D-Bus esistente al momento dell'accesso, se presente.

Vedi Riutilizzare le sessioni D-Bus tra le sessioni di accesso per questo.


1
Questo vale anche per le gio mountrecenti versioni di Ubuntu.
jnas,

1

SMBNetFS utilizza Gnome-keyring per impostazione predefinita. Qualsiasi password inserita e salvata nel portachiavi di Gnome durante la navigazione delle condivisioni Samba in Nautilus dovrebbe essere utilizzata automaticamente. Quindi, se archiviare le password nel portachiavi di Gnome è OK, SMBNetFS è più conveniente. Monta automaticamente l'intero quartiere della rete. Queste informazioni provengono dal file di configurazione di esempio SMBNetFS, ma non l'ho testato poiché non utilizzo Gnome.

Per quanto riguarda l'uso del portachiavi di Gnome senza X11, vedere uso di gnome-keyring-daemon senza X .

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.