Siempre quise usar contraseñas almacenadas de mi llavero para acceder a recursos compartidos SMB en scripts (copias de seguridad) en mi computadora portátil. Mi objetivo no era exponer las contraseñas en archivos y usar anacron para ejecutar las copias de seguridad. Después de algunas pruebas, se me ocurrió esto:
- Monte su recurso compartido una vez a través de Nautilus y almacene la contraseña en el llavero
- intente
gio mount smb://<server_name>/<share_name>
, lo que debería funcionar sin contraseña en su sesión de GNOME
- Use el siguiente código en los scripts de respaldo:
Ejemplo probado en 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>/
Al ejecutar el script a través de anacron desde /etc/cron.daily, debe usar el usuario que tiene acceso al llavero, por ejemplo:
su -c /home/user/scripts/rsync_sript.sh user
cifs-utils
estaba instalado.sudo apt-get install cifs-utils
.