kwallet 以 root 用户身份获取密码

kwallet 以 root 用户身份获取密码

我目前正在设置一个 borgmatic 备份作业,它应该使用以下命令从 kwallet 获取存储库:

kwallet-query -r systeembackup kdewallet -f borg

但不幸的是,当我运行 borgmatic 时它会触发此错误:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Couldn't start kwalletd:  QDBusError("org.freedesktop.DBus.Error.Disconnected", "Not connected to D-Bus server")
passcommand supplied in BORG_PASSCOMMAND failed: Command '['kwallet-query', '-r', 'systeembackup', 'kdewallet', '-f', 'borg']' returned non-zero exit status 1.

由于备份作业以 root 用户身份运行以便能够执行完整系统备份,因此该命令无法打开 KDE 钱包。

我尝试以自己的用户身份运行它:

sudo -i -u ik kwallet-query -r systeembackup kdewallet -f borg

没有成功:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ik'
Couldn't start kwalletd:  QDBusError("org.freedesktop.DBus.Error.Disconnected", "Not connected to D-Bus server")
Wallet kdewallet not found

也不先设置 XDG 变量:

export XDG_RUNTIME_DIR=/run/user/1000; sudo -i -u ik kwallet-query -r systeembackup kdewallet -f borg

有没有办法以特权进程/用户的身份从钱包获取密码?

答案1

我能够通过设置来实现这一点

encryption_passcommand: sudo -E -u InsertUserNameHere kwallet-query -r borg-passphrase kdewallet

/etc/borgmatic/config.yaml

我的博格密码设置为:

head -c 32 /dev/urandom | base64 -w 0 | kwalletcli -Pe borg-passphrase -f Passwords

相关内容