profile.dスクリプトに必要な資格情報を安全に保存する方法は?

profile.dスクリプトに必要な資格情報を安全に保存する方法は?

婦人声明:

Ubuntu 20.04を使用していますが、私の問題は特定のLinuxディストリビューションに関連しているようではありません。私は長い間インターネットを検索して他の同様の質問や回答をたくさん見つけましたが、私の特定の問題に関連する具体的な内容はありません。

私がしたいこと:

ユーザーがログインしたときに(sshまたはコンソールを介して)実行したいスクリプトがあります。したがって、実行するには、資格情報を必要とするスクリプト(たとえば、カールを介したREST呼び出し用のトークン)を/ etc / profile.dに入れる必要があると思います。必要な資格情報はすべてのユーザーに同じであり、ユーザーごとに変わりません。ユーザーが資格情報を表示したくありません。

私の問題は次のとおりです。

/etc/profile.dのスクリプトは、ログインしたユーザーアカウントで実行されているようです。資格情報を環境変数に保存すると、ユーザーはこれを確認できます。資格情報をファイルに保存する場合、ユーザーはファイルを読み取ることができる必要があります。それ以外の場合、スクリプトはそのファイルを読み取ることができません。データベースに資格情報を保存する場合、データベースにアクセスして元の問題に直面するために別のパスワードを使用するには、資格情報が必要です。

私が思いついたこと:

rootでのみ読み取れる資格情報ファイルにアクセスし、sudoを介してrootとして間接的にスクリプトを実行しました。

/etc/profile.d/run-my-script.sh include スクリプトを追加しましたsudo my-script.sh $USER。 (最初に誰がログインしたかを$USER知る必要があります)次に(所有者のルート)を作成し、私の資格情報をファイルに保存しました(また、chmod 600、所有者)。根)。m̀y-script.shchmod 600 my-script.sh.credentials

my-script.shファイルから資格情報を読み取り、実行が完了するとread TOKEN < /etc/profile.d/.credentials実行しましたunset TOKEN

最後にvisudoを介して追加しました。

ALL     ALL=(ALL) NOPASSWD: /etc/profile.d/other-script.sh

私の質問:

私の「解決策」はうまくいきますが、一般的な問題である可能性が高い問題については、あいまいな感じがします。同じ効果を得るためのより簡単な方法はありますか?私はこの脆弱性を逃しましたか?私のソリューションは予期しない方法で資格情報を公開しましたか?

ありがとうございます。

ベストアンサー1

おすすめ記事