Maneira correta de montar compartilhamento de samba

9

Gostaria de montar um sistema de arquivos de rede CIFS com samba no meu sistema Arch Linux. Gostaria de montar este sistema de arquivos sempre que efetuar login (por meio de ssh, TTY ou KDM).

Posso me aproximar do que quero adicionando o compartilhamento de rede /etc/fstab. O maior "problema" é que isso requer codificar permanentemente minha senha /etc/fstabou criar um arquivo de credenciais com meu nome de usuário e senha. Parece-me inseguro manter meu nome de usuário e senha em um arquivo de texto sem formatação, mesmo se eu definir as permissões para 600.

Existe uma maneira "adequada" de montar automaticamente um compartilhamento de rede com segurança? Posso fazer isso com o PAM (meu nome de usuário e senha são iguais nos dois computadores) e, em caso afirmativo, como?

StrongBad
fonte
Você já viu pam_cifs ? "pam_cifs é um módulo Linux-PAM para montar e desmontar compartilhamentos CIFS no login em uma base por usuário"
um CVn
Ou pam_mount, não tenho experiência específica, mas parece que foi projetado para fazer isso.
EightBitTony
@EightBitTony encontrar pam_mount me leva a fazer a pergunta, espero que alguém possa me dizer mais definitivamente se esse é o caminho a percorrer e, em caso afirmativo, como.
StrongBad

Respostas:

8

Método 1 - /etc/fstab

Sei que você está procurando alternativas para isso, mas aqui está especificamente como obter suas credenciais fora do /etc/fstabarquivo:

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

Então no arquivo /etc/cifsauth:

username=someuser
password=somepass

Faça as permissões deste arquivo 600, ou seja chmod 600 /etc/cifsauth.

Método # 2 - pam_mount

Você pode instalar o pam_mount e, em seguida, configurar uma montagem genérica para todos os usuários que fazem login como este:

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

Esse método ainda tem o mesmo problema que o método nº 1, onde as credenciais são armazenadas em um arquivo /home/%(USER)/.Music.cred. Esse é o mesmo tipo de arquivo de credencial do primeiro método, portanto, verifique se as permissões também são 600.

Método # 3 - use gvfs-mount

Esta seção de perguntas e respostas da U&L intitulada: Posso automatizar a montagem de um compartilhamento cifs sem armazenar minha senha em texto sem formatação? contém uma resposta de @Gilles que descreve o uso do chaveiro GNOME para manter suas credenciais CIFS.

Você pode acessar os compartilhamentos CIFS usando o GVFS - GNOME Virtual File System - assim:

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

Isso mapeará o compartilhamento do nome do host chamado sharename e o montará $HOME/.vfs/sharename on hostname. Você não pode controlar isso de forma alguma. É codificado para sempre ser montado aqui, eu olhei!

No entanto, é possível criar links para essas montagens, o que faço para acessar os compartilhamentos que montei. O uso de .gvfsfoi lamentável, porque algumas ferramentas não listam os diretórios de ponto no arquivo navegando com tanta frequência que o link que eu criei é a única maneira de acessar esses compartilhamentos.

slm
fonte
se você fizer arquivo como .cifsauth digamos escondido, e 'username =' não é necessário, apenas credenciais = / etc / .cifsauth suficiente
Rahul Patil
@RahulPatil - você está dizendo que precisa criar as credenciais nomeadas .cifsauthpara remover o username=, ou que o username=justo não é necessário todos juntos?
Slm
sim ... boa resposta .. !! +1 para pam_mount
Rahul Patil
@RahulPatil - com que parte você concorda?
Slm
2

Acontece que esse pam_mounté o caminho a percorrer. Você adiciona o compartilhamento de rede 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" />

Deve ser teoricamente possível usar os %(USER), %(USERUID)e %(USERGID)variáveis para torná-lo um general montar, mas eu não poderia começar essa parte ao trabalho no Arch Linux. Você também precisa configurar seu sistema para usar pam_mount. Você precisa modificar ambos /etc/pam.d/system-authe seu gerenciador de login correspondente. Para o KDM é /etc/pam.d/kde. As modificações envolvem basicamente adicionar optional pam_mount.soa todas as seções de ambos os arquivos, mas os detalhes exatos são complicados, pois o pedido é importante. Eu segui o Arch Wiki .

Com essa configuração e o mesmo nome de usuário / senha no servidor e na minha máquina, posso montar automaticamente sem salvar um arquivo de credenciais em qualquer lugar.

StrongBad
fonte
Isso é bom ... Por uma questão de princípio, eu preferiria a solução fstab - eu não gosto pame o resto, pessoalmente, e notei que eles tendem a se infiltrar ainda mais na configuração do sistema - mas isso definitivamente responde à pergunta. Posso perguntar, porém, por que você se opõe a armazenar credenciais? As permissões do usuário e / ou a propriedade / criptografia do arquivo devem ser mais do que suficientes lá. Em alguns sistemas, você pode até armazenar essas informações em vars de firmware que só são acessíveis após a autenticação. ssharmazena credenciais com base nas permissões fs, por exemplo, não é?
mikeserv
@mikeserv, usamos um sistema de login único para que um administrador do sistema que tenha acesso root à máquina com meu arquivo de credenciais possa não ter acesso root a todos os servidores para os quais minha senha me dá acesso.
StrongBad