Modo corretto di montare la condivisione samba


9

Vorrei montare un filesystem di rete CIFS con samba sul mio sistema Arch Linux. Vorrei montare questo filesystem ogni volta che eseguo l'accesso (tramite SSH, TTY o KDM).

Posso avvicinarmi molto a ciò che voglio aggiungendo la condivisione di rete a /etc/fstab. Il più grande "problema" è che ciò richiede la codifica forzata della mia password /etc/fstabo la creazione di un file di credenziali con il mio nome utente e password. Mi sembra pericoloso conservare il mio nome utente e la mia password in un file di testo semplice anche se imposto le autorizzazioni su 600.

Esiste un modo "corretto" per montare automaticamente una condivisione di rete? Posso farlo con PAM (il mio nome utente e la mia password sono gli stessi su entrambe le macchine) e, in caso affermativo, come?


Hai visto pam_cifs ? "pam_cifs è un modulo Linux-PAM per montare e smontare le condivisioni CIFS all'accesso per utente"
un CVn

O pam_mount, non ho esperienza specifica, ma sembra progettato per farlo.
EightBitTony

@EightBitTony trovando pam_mount mi porta a porre la domanda, spero che qualcuno possa dirmi in modo più definitivo se è la strada da percorrere e se sì come.
StrongBad

Risposte:


8

Metodo n. 1 - /etc/fstab

Mi rendo conto che stai cercando alternative a questo, ma ecco in particolare come estrarre le tue credenziali dal /etc/fstabfile:

//WindowsHost/Sharename /LocalMountPoint cifs credentials=/etc/cifsauth 0 0

Quindi nel file /etc/cifsauth:

username=someuser
password=somepass

Rendi le autorizzazioni di questo file 600, ad es chmod 600 /etc/cifsauth.

Metodo n. 2 - pam_mount

È possibile installare pam_mount e quindi impostare un mount generico per tutti gli utenti che effettuano l'accesso come questo:

# /etc/security/pam_mount.conf.xml
<debug enable="1" />
<volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />

Questo metodo ha ancora lo stesso problema come metodo di # 1, in cui le credenziali vengono memorizzate in un file, /home/%(USER)/.Music.cred. Questo è lo stesso tipo di file di credenziali del primo metodo, quindi assicurati che anche le autorizzazioni siano 600.

Metodo n. 3: utilizzare gvfs-mount

Queste domande e risposte sono intitolate: Posso automatizzare il montaggio di una condivisione cifs senza memorizzare la mia password in testo normale? contiene una risposta di @Gilles che descrive l'uso del portachiavi GNOME per conservare le credenziali CIFS.

È quindi possibile accedere alle condivisioni CIFS usando GVFS - GNOME Virtual File System - in questo modo:

$ gvfs-mount smb://username\;workgroupname@hostname/sharename

Questo mapperà la condivisione dal nome host chiamato sharename e la monterà sotto $HOME/.vfs/sharename on hostname. Non puoi controllarlo in alcun modo. È hardcoded per essere sempre montato qui, ho guardato!

È comunque possibile creare collegamenti a questi montaggi, che è quello che faccio in modo da poter accedere alle condivisioni che ho montato. L'uso di è .gvfsstato sfortunato perché alcuni strumenti non elencano le directory dei punti nella navigazione dei file così spesso il collegamento che ho creato è l'unico modo per accedere a queste condivisioni.


se crei un file come nascosto, dì .cifsauth e 'username =' non richiesto, solo credenziali = / etc / .cifsauth abbastanza
Rahul Patil

@RahulPatil - stai dicendo che devi fare le credenziali nominate .cifsauthper rimuovere il username=, o che il username=giusto non è necessario tutti insieme?
slm

si ... bella risposta .. !! +1 per pam_mount
Rahul Patil

@RahulPatil - con quale parte sei d'accordo?
slm

2

Si scopre che pam_mountè la strada da percorrere. Si aggiunge la condivisione di rete a/etc/security/pam_mount.conf.xml

<volume user="yourUserName" fstype="auto" path="//path/to/the/network/share" mountpoint="/path/to/the/mount/point" options="username=yourUserName" />
<mkmountpoint enable="1" remove="true" />

Dovrebbe essere teoricamente possibile utilizzare i %(USER), %(USERUID)e %(USERGID)le variabili per rendere un generale di montaggio, ma non ho potuto ottenere quella parte di lavoro su Arch Linux. È inoltre necessario configurare il sistema per l'uso pam_mount. Devi modificare sia /etc/pam.d/system-authil gestore degli accessi corrispondente. Per KDM lo è /etc/pam.d/kde. Le modifiche implicano sostanzialmente l'aggiunta optional pam_mount.soad ogni sezione di entrambi i file, ma i dettagli esatti sono complicati poiché l'ordinamento è importante. Ho seguito Arch Wiki .

Con questa configurazione e lo stesso nome utente / password sul server e sulla mia macchina posso montare automaticamente senza salvare un file di credenziali ovunque.


Questo è buono ... In linea di principio preferirei la soluzione fstab - non mi piace pame il resto, personalmente, e ho notato che hanno la tendenza a insinuarsi sempre più nella configurazione del sistema - ma questo sicuramente risponde alla domanda. Posso chiederti però perché sei così contrario alla memorizzazione delle credenziali? Le autorizzazioni utente e / o la proprietà / crittografia dei file dovrebbero essere più che sufficienti lì. Su alcuni sistemi è anche possibile archiviare tali informazioni in firmware che sono accessibili solo dopo l'autenticazione. sshmemorizza le credenziali in base alle autorizzazioni fs, ad esempio, vero?
Mikeserv,

@mikeserv utilizziamo un unico sistema di accesso, quindi un amministratore di sistema che ha accesso root alla macchina con il mio file di credenziali, potrebbe non avere accesso root a tutti i server per i quali la mia password mi consente di accedere.
StrongBad,
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.