Montagem Samba com prompt de senha como usuário não root

17

Desejo montar um compartilhamento SMB protegido por senha (servido por uma máquina Windows). O compartilhamento é protegido por um nome de usuário e senha, e talvez eu não escreva a senha em um arquivo. Quero que a senha seja solicitada no momento da montagem.

Preciso de uma solução que funcione mesmo quando o usuário na máquina cliente não tiver privilégios administrativos, portanto, qualquer método usado para montar o compartilhamento não deve permitir que ele obtenha permissões de root. A instalação inicial pode ser feita como raiz. Os usuários devem poder especificar nomes de servidor arbitrários. Minha necessidade imediata é com o Ubuntu 12.04, mas quanto maior a solução aplicável, melhor.

O cliente está sem cabeça, então estou procurando uma ferramenta de linha de comando.

O que eu tentei:

  • mount.cifs: embora possa ser feito root setuid, seus autores não o consideram seguro . Executá-lo em baixo sudotem o mesmo problema.
  • smbnetfs, fusesmb: Não consegui convencer nenhum deles a solicitar uma senha.
  • Nautilus e gvfs: gvfs-mount smb://servername/sharenamefalha com Error mounting location: volume doesn't implement mount.

Como montar um compartilhamento Samba na linha de comando, como um usuário não root, com um prompt de senha?

Gilles 'SO- parar de ser mau'
fonte
1
Um dos principais desenvolvedores parece ter afrouxado sua posição sobre os problemas de setuid. Trecho: "O código foi reformulado substancialmente e deve ser muito mais seguro do que era anteriormente. Ele privilegia a separação agora, de modo que a maior parte do processo de montagem seja executada como um usuário sem privilégios e, se vinculado às bibliotecas corretas, com recursos removidos Neste ponto, eu diria que é seguro o suficiente para que não seja mais necessário restringir a instalação do root setuid ". source: lists.samba.org/archive/samba/2010-April/154935.html Achei que eu deveria apontar isso.
Tim

Respostas:

20

"Local de erro na montagem: o volume não implementa a montagem" aparentemente se traduz em "Eu preciso do D-Bus, mas não está disponível". (Obrigado ao colega guru do venturax por essas informações.) Em uma sessão SSH, eu posso usar gvfs-mountdesde que dbus-daemonseja iniciado primeiro e a variável de ambiente DBUS_SESSION_BUS_ADDRESSesteja definida.

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

gvfs-mounte outros utilitários GVFS devem todos conversar com a mesma sessão D-Bus. Portanto, se você usar várias sessões SSH ou usar montagens nas sessões de logon, deverá:

  • inicie o D-Bus na primeira vez que for necessário;
  • tome cuidado para não deixar o D-Bus terminar com a sessão, desde que existam sistemas de arquivos GVFS montados;
  • reutilize a sessão D-Bus existente no momento do login, se houver uma.

Consulte Reutilizar sessões do D-Bus nas sessões de login para isso.

Gilles 'SO- parar de ser mau'
fonte
1
Isso também se aplica às gio mountversões recentes do ubuntu.
jnas
1

O SMBNetFS usa o Gnome-keyring por padrão. Todas as senhas inseridas e salvas no Gnome-keyring durante a navegação nos compartilhamentos Samba no Nautilus devem ser usadas automaticamente. Portanto, se o armazenamento de senhas no Gnome-keyring estiver correto, o SMBNetFS será mais conveniente. Monta automaticamente todo o bairro da rede. Essas informações são do exemplo de arquivo de configuração do SMBNetFS, mas não as testei desde que não uso o Gnome.

Quanto ao uso do chaveiro Gnome sem X11, consulte uso de-keyring gnome-daemon sem X .

Sameer
fonte