montagem fstab e cifs, possível armazenar informações de autenticação fora do fstab?

10

Atualmente, estou usando cifs para montar alguns compartilhamentos de rede (que exigem autenticação) no / etc / fstab. Ele funciona de maneira excelente, mas eu gostaria de mover os detalhes de autenticação (nome de usuário / senha) para fora do fstab e poder usá-lo como chmod 600 (como o fstab pode ter problemas se alterar suas permissões). Eu queria saber se é possível fazer isso (sistema para muitos usuários, não quero que essas permissões sejam visíveis por todos os usuários).

de:

//server/foo/bar /mnt/bar cifs username=user,password=pass,r 0 0

para:

//server/foo/bar /mnt/bar cifs <link to permissions>,r 0 0

(ou algo análogo a isso). Obrigado.

TJ L
fonte

Respostas:

11

Na página de manual mount.cifs:

credenciais = nome do arquivo
    especifica um arquivo que contém um nome de usuário e / ou senha. O formato do arquivo é:

                         nome de usuário = valor
                         senha = valor
   É preferível ter senhas em texto sem formatação em um arquivo compartilhado, como / etc / fstab. Certifique-se de proteger qualquer arquivo de credenciais corretamente.

janneb
fonte
2
Observe que a vaga "Certifique-se de proteger corretamente qualquer arquivo de credenciais". normalmente significa que você deve salvar o arquivo (como root) para /root/, e chmod 700ele
Nate Parsons
minha conexão também precisa domain=valueparte
vladkras
3
Eu esperava que a situação fosse diferente sete anos depois , mas, infelizmente, parece que essa ainda é a melhor resposta. E não é remotamente seguro. Cada pessoa com sudoacesso ao servidor pode ler .smbcredentials. No meu caso, o arquivo conteria - a menos que eu convencesse outra pessoa a desistir deles - _my_ creds de login do Windows. Tipo, as mesmas credenciais de logon único que eu uso para acessar todos os sistemas da Evil Corp, incluindo folha de pagamento, benefícios, etc.? Parece cheio de perigos. Algo assim pode ser um pouco mais seguro: askubuntu.com/a/1081421 .
Evadeflow
1
A sintaxe desse arquivo é delicada. Não coloque linhas vazias ou mesmo # commentslá dentro.
David Tonhofer 01/02/19
8

Use a opção de credenciais, como:

http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html

Exemplo do site:

cd
echo username=mywindowsusername > .smbpasswd
echo password=mywindowspassword >> .smbpasswd
chmod 600 .smbpasswd

Substitua seu nome de usuário e senha do Windows nos comandos. Ninguém mais, exceto root, seria capaz de ler o conteúdo deste arquivo.

Uma vez criado, você modificaria a linha no arquivo / etc / fstab para ficar assim:

//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/.smbpasswd 0 0

exemplo de / etc / fstab:

//server/share/   /mnt/localmountpoint   cifs   credentials=/root/.creda

A postagem de janneb e o link para a página de manual mostram o que precisa estar presente no arquivo de credenciais.

damorg
fonte
2
Obrigado, ambas as respostas foram úteis (eu deveria ter lido as páginas de manual). Se eu pudesse marcar 2 respostas como a resposta correta, eu faria.
TJ L
sem preocupações ... Uma vez eu vi a resposta de janneb, ficou claro que a resposta estava coberto :)
damorg
6

Então, estou acumulando as duas respostas

  1. Crie um arquivo, por exemplo, /root/.cifs

    username=value
    password=value
    domain=value (optional)
    
  2. definir permissão 600( permissão rw) para proteger suas credenciais

    # chmod 600 /root/.cifs
    
  3. passar credentials=/root/.cifspara o seu comando em vez de username=epassword=

vladkras
fonte
2
Comentário extra menor: O chmodnão é necessário, pois o diretório inicial do root já /rooté esperado rwx------.
David Tonhofer 01/02/19
Eu tive problemas ao usar apenas nome de usuário e senha, quando tentei montar uma pasta compartilhada do Windows, no Red Hat Linux. Eu consegui apenas depois de adicionar o domínio ao arquivo de credenciais. Pareceu-me que, neste caso, a informação do domínio é muito aconselhável.
aldemarcalazans 12/03