Eu sempre quis usar senhas armazenadas do meu chaveiro para acessar compartilhamentos SMB em scripts (backups) no meu laptop. Meu objetivo não era expor as senhas nos arquivos e usar o anacron para executar os backups. Após alguns testes, vim com isso:
- Monte seu compartilhamento uma vez via Nautilus e armazene a senha no chaveiro
- tente
gio mount smb://<server_name>/<share_name>
, o que deve funcionar sem senha na sua sessão do GNOME
- Use o seguinte código nos scripts de backup:
Exemplo testado no Ubuntu 19.04:
# set the dbus address
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u)/bus"
# export dbus address to get access to user space keyring
export DBUS_SESSION_BUS_ADDRESS
# use new gnome user space mount tool (gvfs-mount is deprecated)
gio mount smb://<server_name>/<share_name>
#sync from gvfs created mount point to home dir
rsync -rav /var/run/user/$(id -u)/gvfs/smb-share\:server\=<server_name>\,share\=<share_name>/<folder>/ ~/<sync_dest>/
Ao executar o script via anacron em /etc/cron.daily, você precisa usar o usuário que tem acesso ao chaveiro, por exemplo:
Usuário su -c /home/user/scripts/rsync_sript.sh
cifs-utils
estava instalado.sudo apt-get install cifs-utils
.