Я всегда хотел использовать сохраненные пароли из моего набора ключей для доступа к общим ресурсам SMB в скриптах (резервных копиях) на моем ноутбуке. Моя цель состояла не в том, чтобы раскрыть пароли в файлах и использовать anacron для запуска резервного копирования. После некоторого тестирования я придумал это:
- Смонтируйте свою долю один раз через Nautilus и сохраните пароль в связке ключей
- попробуйте
gio mount smb://<server_name>/<share_name>
, что должно работать без пароля в вашей сессии GNOME
- Используйте следующий код в сценариях резервного копирования:
Пример, протестированный на 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>/
При запуске скрипта через anacron из /etc/cron.daily вам необходимо использовать пользователя, который имеет доступ к связке ключей, например:
su -c /home/user/scripts/rsync_sript.sh user
cifs-utils
было установлено для.sudo apt-get install cifs-utils
,