Monte o compartilhamento de samba no login usando o script de inicialização (não fstab)

3

Plano de fundo

Estou tentando executar automaticamente um comando que monte um compartilhamento Samba protegido por senha quando meu usuário fizer o login. O problema é que compartilho meu laptop com outro usuário e não quer que o compartilhamento Samba seja montado quando ela se conecta. Eu só quero que ele seja montado quando eu fizer login . Isso exclui a edição do meu arquivo fstab porque quero que isso seja específico do usuário.

Pesquisa anterior

Eu pesquisei e revisei muitas perguntas e respostas relacionadas à montagem de compartilhamentos do Samba, incluindo " Montando Samba Shares no boot / login e usando script " e " Entrada fstab adequada para montar um compartilhamento samba na inicialização ," mas a maioria das respostas envolve a edição do fstab, que funciona muito bem para a maioria das pessoas, mas não é isso que eu estou procurando por aqui.

O que eu fiz até agora

Eu posso montar manualmente o compartilhamento Samba na linha de comando fazendo isso:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Declaração do problema

O comando anterior funciona muito bem quando eu o executo a partir da linha de comando - ele solicita minha senha para obter a permissão sudo, eu a insiro e o comando é executado. O problema é, quando eu adiciono exatamente o mesmo comando ao campo "Command" em Startup Applications Preferences > Editar programa de inicialização, salvar minhas alterações, reinicializar e entrar novamente, o compartilhamento do Samba não é montado como eu esperava. Eu suspeito que é porque eu preciso de permissão de root para rodar como sudo, e com o script nas Startup Programs Preferences, não há como eu entrar nele, então o script simplesmente falha.

Como posso trabalhar com isso?

    
por Scott 05.02.2014 / 00:27

2 respostas

1

Ok, eu consegui resolver isso sozinho (com a ajuda de outras pessoas). O problema subjacente era, como eu suspeitava, o fato de que eu estava tentando executar um comando que exigia privilégios de root sem fornecer uma senha. Eu resolvi esse problema seguindo as instruções do tópico ". O longo e curto é, eu criei um script de shell chamado "script-mount-samba-share.sh" que contém nada além de uma única linha com o comando mount que eu quero executar:

mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Em seguida, alterei a propriedade do arquivo para root: root e alterei suas permissões para 700. Em seguida, configurei o sudo para permitir a execução desse script sem inserir uma senha e alterei o campo "Command" em Startup Applications Preferences > Editar programa de inicialização para "sudo /home/scott/script-mount-samba-share.sh" (sem as aspas) e voila. Na próxima vez que eu reiniciei e conectei com meu usuário, o compartilhamento do Samba foi montado sem que eu levantasse um dedo. Eu também testei que quando eu reinicio e faço login com um usuário diferente, o compartilhamento Samba não é montado, que é o que eu quero.

A única falha menor que estou tentando superar agora é que, quando eu já estou conectado e mudo os usuários para outra pessoa, meu compartilhamento Samba ainda aparece na barra de navegação do lado esquerdo no Nautilus, o que faz sentido como foi montado quando eu entrei com meu próprio usuário, mas não quero que o compartilhamento montado seja exibido no Nautilus para o outro usuário, então minha próxima tarefa é descobrir como fazer essa parte acontecer.

    
por Scott 05.02.2014 / 01:56
0

É importante adicionar o nome de usuário e a senha para o comando mount, caso contrário, ele poderá solicitar a senha. para mim isso funcionou:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,user=,password=,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

claro, com todas as mudanças no / etc / sudoers

    
por Balazs Molnar 04.03.2016 / 13:59