
私は、右systemd を使用して必要なことを達成する方法。私は板挟みになってしまい、どこへ行けばよいのか分からないような気がします。要約すると次のようになります。
systemdを正常にセットアップしましたユーザーユニットは、いくつかの処理を実行するバックアップ スクリプトを夜間に実行します。
- ユーザーのSSHキーを使用して別のマシンにSSH接続します
- リモートマシンにsudoを必要とするコマンドのパスワードを送信するためにpass(つまり、私のユーザーのパスワードストア)を呼び出します。
- リモートマシンからバックアップドライブにデータを同期します
これらはすべてうまくいきます。問題は、バックアップドライブにローカルでいくつかのデータをrsyncする必要があることですが、そのデータはルートによって所有されています。スクリプトを実行するためにsudoを使用しない限り、rsyncは権限が拒否されて失敗します。しかし、問題はsystemd ユーザーユニットで sudo の使用を自動化する方法がわかりません- パスの呼び出しが機能しないようです。
どこかで、必要なことを実現するには、root として実行される通常の systemd ユニットを使用すればよいと読んだのですが、問題は、root にはユーザーの ssh キーまたはパス ストアへのアクセス権がないため、ユーザー ユニットとして実行しているときに動作していた他のすべてのものが、root として実行すると動作しなくなることです。
TLDR: 次のことが可能な systemd ユニットを設定する最適な方法は何ですか? 1) SSH キーとパス ストアへのアクセスを必要とするコマンドを実行し、2) 昇格された権限を必要とする rsync データも実行し、3) これら 2 つのことを、キーボードでユーザーのパスワードを入力する必要のない自動化された方法で実行します。