我需要一些幫助來弄清楚正確的使用 systemd 完成我需要的方法。我感覺自己進退兩難,不知道該往哪裡走。這是濃縮的上下文:
我成功設定了systemd使用者每晚執行備份腳本的單元,該腳本執行以下操作:
- 它使用我用戶的 ssh 密鑰來 ssh 到另一台機器
- 它調用 pass (即我的用戶的密碼存儲)將密碼發送到遠端計算機,以獲取遠端需要 sudo 的命令
- 它將一些資料從遠端電腦同步到備份驅動器
這一切都非常有效。現在的問題是我還需要將一些資料本地同步到我的備份驅動器,但資料歸 root 所有。除非我使用 sudo 運行腳本,否則 Rsync 會因權限被拒絕而失敗。但問題是我不知道如何透過 systemd 用戶單元自動使用 sudo- 呼叫 pass 似乎不起作用。
我在其他地方讀到,我應該使用一個以root 身份運行的普通systemd 單元來完成我需要的任務,但問題是,作為用戶單元運行時正在工作的所有其他東西在以root 身份運行時都會中斷,因為root無權存取我的使用者的 ssh 金鑰或通行證儲存。
TLDR:設定 systemd 單元的最佳方法是什麼,它可以:1)執行需要訪問我的 ssh 密鑰和密碼存儲的命令,2)還需要提升權限的 rsync 數據,以及 3)在一個我不需要在鍵盤上輸入使用者密碼的自動化方式?