Existem provavelmente várias soluções possíveis; aqui está como eu faria isso. (Aviso: não testado!)
O mount.cifs
comando pode ler o nome de usuário e senha do USER
e
PASSWD
de variáveis ambientais, mas também pode lê-las a partir de um
"credenciais", que você especifica na linha de comando com a opção -o
cred=/path/to/credentials/file
.
A abordagem de arquivo de credenciais é mais simples de implementar pela IMHO.
-
Crie um arquivo de texto
$HOME/.Music.cred
para armazenar as credenciais; o arquivo deve ter este formato:user=your-username-on-cifs-server password=the-password domain=leave-this-blank-unless-really-using-windows-domains
-
Proteja o arquivo
$HOME/.Music.cred
; execute este comando em um terminal:chmod go-rw $HOME/.Music.cred
-
Agora você deve conseguir montar o compartilhamento CIFS
//server/music
on diretórioMyMusicFolder
usando este comando:sudo mount -t cifs -o cred=$HOME/.Music.cred //server/music $HOME/MyMusicFolder
Você pode permitir que cada usuário execute isso com sudo sem senha por adicionando uma linha a
/etc/sudoers
: (uma linha por usuário)# replace every occurence of 'user' with the actual account name user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder
-
Se o comando da etapa 3 funcionou corretamente, você pode torná-lo automática de várias maneiras:
- salve-o em um shell script no seu diretório inicial e faça esse script é um aplicativo auto-iniciado (você tem que fazer isso para todos os usuários que precisam montar compartilhamentos CIFS);
- salve-o em um script de shell
/etc/X11/Xsession.d/30mount-cifs-shares
para que funcione para qualquer usuário.
Alternativamente, você pode substituir as etapas 3 e 4. acima com o uso de pam-mount :
-
pacote de instalação libpam-mount
-
configure
/etc/security/pam_mount.conf.xml
com:<debug enable="1" /> <volume server="server" path="music" mountpoint="~/MyMusicFolder" options="cred=/home/%(USER)/.Music.cred" />
Referências:
- a página de manual do mount.cifs
- a página do manual pam_mount.conf