Monte uma unidade de rede samba do terminal sem codificar uma senha

3

Eu sei que o comando padrão ficaria assim:

sudo mount -t cifs -o username=YOUR_USERNAME,password=YOUR_PASSWORD,uid=YOUR_UBUNTU_USERNAME //networkNameOfRemoteComputer/path/to/my/folder /path/to/mounting/dir

No entanto, quero montar uma pasta de compartilhamento de samba sem codificar minha senha. Considero um risco de alta segurança se a senha estiver visível. Alguém tem uma ideia?

(Em uma versão anterior desta pergunta eu também pedi para montagem sem direitos de sudo, mas parece que isso simplesmente não é possível :()

    
por mcExchange 25.01.2016 / 16:07

1 resposta

3

Use o comando mount.cifs , pois ele permite especificar um arquivo de credenciais ou solicitar uma senha, se não houver nenhuma.

Instalação

Primeiro de tudo, verifique se você tem os pacotes necessários instalados, emitindo o seguinte comando:

sudo apt-get install cifs-utils

MÉTODO 1 - USANDO UM ARQUIVO DE CREDENCIAIS

De acordo com o manual link :

  

OPÇÕES
  [...]
  credenciais = nome do arquivo   especifica um arquivo que contém um nome de usuário e / ou senha e   Opcionalmente, o nome do grupo de trabalho. O formato do arquivo é:

     

nome de usuário = valor
  password = value
  domínio = valor

Uso:

mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw,credentials=<path_to_the_credentials_file>

Exemplo:

sudo mount.cifs //domain.com/share /mnt/domain_com -o user=admin,rw,credentials=/root/.credentials

É importante observar que o "nome_do_usuário_para_conectar_as" também pode conter o domínio ou o grupo de trabalho:

user=workgroup/user
user=domain/user

(Dependendo do seu ambiente, você precisará de mais ou menos opções)

Em relação à segurança, deve ser suficiente armazenar o arquivo de credenciais no diretório / root, mas se você quiser armazená-lo em outro lugar, apenas

  • defina o usuário root como seu proprietário com sudo chown root <file>
  • definir permissões somente de proprietário com 'sudo chmod 600

MÉTODO 2 - PROMPT DE SENHA

Se, como afirmado, você não quiser que sua senha seja visível, apenas não forneça a opção "senha" no comando mount.cifs .

A partir da página de mana no link

  

senha = arg

      specifies  the  CIFS  password. If this option is not given then the
      environment  variable  PASSWD  is  used.  If  the  password  is  not
      specified directly or indirectly via an argument to mount mount.cifs
      will prompt for a password, unless the guest option is specified.

      Note that a password which contains the delimiter character (i.e.  a
      comma  ’,’)  will  fail  to be parsed correctly on the command line.
      However,  the  same  password  defined  in  the  PASSWD  environment
      variable  or  via  a  credentials file (see below) or entered at the
      password prompt will be read correctly.

Assim, o seguinte comando deve solicitar uma senha:

mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw

Testado e funcionando conforme o esperado:

    
por Eduardo López 28.01.2016 / 17:20