通常のユーザー アカウントを使用しているときに、単一の sudo コマンドを実行するためのより良いソリューションをお探しですか?

通常のユーザー アカウントを使用しているときに、単一の sudo コマンドを実行するためのより良いソリューションをお探しですか?

グループのメンバーではない通常のユーザーアカウントでログインしています須藤そして管理者. 以下のサンプルコマンドを実行すると..

su -c 'sudo some_command_that_needs_sudo' sudo-user

パスワードを入力する必要があります2回初めてログインする場合はsudo ユーザー2回目はルート権限を要求するため須藤

パスワードを二度入力しないようにする方法をご存知ですか?

ご注意ください。

  • ..ユーザー権限を変更したくない
  • パスワードを一度だけ入力したい
  • シンプルな単一コマンドを探しています

答え1

あなたの設定は少し異常です。通常は、ユーザー名を sudoers に追加し、必要に応じてこの方法で実行できるアプリケーションを制限します。詳細がわからないため、3 番目のアカウントを導入するメリットはわかりません。間接性が増すだけであり、それが現在発生している問題です。

最初に入力するパスワードは、sudo ユーザーになるためのものです。これを避けることはできません。ユーザーを切り替えることになるからです。ここでは、使用すべきではない、思いつく奇妙な回避策をいくつか紹介します。

  • ログインを簡単にするために、ユーザーに空のパスワードを設定することもできますが、それは非常識なセキュリティ上のリスクがあります。これを行わないでください。
  • ハードコードされたパスワードを使用してログインを自動化することもできますexpect。これは、前の提案よりも安全ではありません。これを行わないでください。
  • ssh を使うこともできます。sudo ユーザーとして ssh キーを作成し、それをユーザーの .ssh ディレクトリにコピーし、ユーザーに権限を与え、それを sudo ユーザーの .ssh/authorized_keys に追加して、次を使用しますssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>。動作するかもしれませんが、面倒です。

2 番目のパスワードは、sudoers ファイルを編集してvisudosudouser を NOPASSWD に設定することで簡単に削除できます。これはより一般的な操作です。パスワードを必要としないコマンドを制限することもできます。これは、この方法で少数のコマンドのみを実行する場合に推奨されます。ただし、この sudo ユーザーを非常に真剣に扱わない限り、NOPASSWD ポリシーを設定することはお勧めできません。一般的に言えば、どちらにしてもお勧めできません。

パスワードプロンプトなしですべてのコマンドを実行できる構成は次のようになります。

sudouser ALL= NOPASSWD: ALL

結論として、なぜこの 3 つのアカウント構成を使用しているのかわかりません。それを脇に置いて、要求どおりの結果を得るという点では、sudo ユーザーがパスワードを要求されることなく特定のコマンドを実行できるようにするのが最も賢明な方法です。

ただし、注意が必要です。これにより、セキュリティの低い設定が作成されます。

余談ですが、ssh キーベースの認証と sudo ユーザーの NOPASSWD の両方を使用することで、ガイドライン内でゼロ認証ソリューションを実現することは技術的に可能です。そのため、コマンドは次のようになります。

ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like

それは明らかに、安全とは言えないレベルです。まったくもってオープンです。言うまでもないことですが、そんなことはしないでください。

関連情報