시스템 서비스로 실행될 때 PAM을 사용하여 그놈 키링의 잠금을 해제할 수 있습니까?
우리 소프트웨어는 Python Keyring 모듈을 사용하여 자격 증명을 저장하지만 gnome_keyring_daemon에 키 링 비밀번호를 전달해야 하기 때문에 RHEL/Centos에서 SecretService Keyring 백엔드를 사용하는 데 문제가 있습니다.
~에서https://pypi.org/project/keyring/:
Install the GNOME Keyring daemon.
Start a D-Bus session, e.g. run dbus-run-session -- sh and run the following commands inside that shell.
Run gnome-keyring-daemon with --unlock option. The description of that option says:
Read a password from stdin, and use it to unlock the login keyring or create it if the login keyring does not exist.
When that command is started, enter your password into stdin and press Ctrl+D (end of data). After that the daemon will fork into background (use --foreground option to prevent that).
Now you can use the SecretService backend of Keyring. Remember to run your application in the same D-Bus session as the daemon.
systemd 서비스로 실행할 때 위에서 언급한 대로 다음과 같이 하드코딩된 키링 비밀번호가 있는 스크립트를 사용하여 gnome 키링(및 자격 증명)에 액세스할 수 있습니다.
dbus-run-session -- "./unlock-keyring-run.sh"
그 중 Unlock-keyring-run.sh는 다음과 같습니다.
echo "Passw0rd" | gnome-keyring-daemon --unlock
run_my_program
PAM이 systemd 서비스가 시작될 때 그놈 키링을 잠금 해제하여 스크립트에서 (안전하지 않게) 전달할 필요가 없는지 궁금합니다. 콘솔에서 로그인할 때 PAM을 사용하여 키링을 잠금 해제하는 방법에 대한 문서가 있습니다.
https://wiki.gnome.org/Projects/GnomeKeyring/Pam/Manual
gnome keyring PAM 지시어가 /etc/pam.d/systemd-user와 작동하는지 알고 싶습니다.