実際に「sudo」を必要としないコマンドが与えられた場合、sudoはパスワードを求めるかどうかをどのように決定しますか?

実際に「sudo」を必要としないコマンドが与えられた場合、sudoはパスワードを求めるかどうかをどのように決定しますか?

sudo実際に不要なコマンドに適用する場合sudo

  • 時にはパスワードを聞かないことがあります。たとえば、私$HOMEsudo ls

  • しかし、どのコマンドなのかは覚えていませんが、他のコマンドとも機能することを覚えています。

sudoもしそうなら、あなたが本当に必要としないコマンドが与えられたときにパスワードを求めるかどうかをどのように決定するのか疑問に思いますsudo/etc/sudoers指定できるルールはありますか?

私の本当の問題は、私がそれを使用したときに、du特定のディレクトリに対して「権限が拒否されました」と表示され、時にはそうではないということです。それはおそらく、特定のディレクトリに対する権限がないからでしょうか?sudoとにかく申し込みましたが、duとにかくパスワードの入力を求められますが、実際には私のディレクトリにはありません。

答え1

sudo実行を要求するコマンドを他のユーザー(通常はroot)として実行する必要があるかどうかはわかりません。知っているのは設定だけです。これは、どのユーザーが実行できるかsudo、どのユーザーが「ターゲット」であるか、どのコマンドが実行されるかを決定します。また、パスワードが必要か、どのパスワードが必要か、認証トークンが維持されるかどうかを決定します。

デフォルトの Debian 設定を使用している場合は、後者がここに含まれる可能性が最も高くなります。sudo特定の端末で初めて使用すると、パスワードの入力を求められ、特定の期間中に認証トークンが保持されます。時間の量。その時間内に同じ端末で再使用すると、sudoパスワードの入力を求められません。

答え2

一般的な構成では、このコマンドは関係ありません。 sudoを初めて使用するときはパスワードが必要で、特定のシェルで次の15分間は必要ありません。

コンピュータの観点からは、「sudoが必要なコマンド」というものはありません。すべてのユーザーがすべてのコマンドを実行しようとすることができます。結果は、「権限が拒否されました」や「該当するファイルやディレクトリがありません」などのエラーメッセージである可能性がありますが、コマンドは常に実行できます。

たとえば、duアクセス権のないコンテンツを含むディレクトリツリーで実行している場合、権限エラーが発生します。これは「許可拒否」を意味します。sudo dusudoを実行するとdurootとして実行されるため、権限エラーは発生しません(rootアカウントのポイント:rootには常に権限があります)。を実行するときはsudo durootduとして実行し、sudo起動後はまったく参加しないでください。dudu で許可エラーが発生するかどうかは sudo の仕組みとまったく関係ありません。

一部のコマンドにはsudoが必要です。何か役に立つことをしなさい。ユーザビリティは人間の概念です。 rootとして実行してもコマンドは機能しませんが、自分のアカウントでは機能しない場合は、sudo(またはrootでコマンドを実行する他の方法)を使用する必要があります。

sudoがパスワードを要求するかどうかは、2つの方法によって異なります。

  1. sudo は、構成によって認証が必要かどうかを決定します。デフォルトでは、sudoにはパスワードが必要です。この機能は、authenticateオプションをfalseに設定し、ラベルに適用可能なルールを設定するなど、さまざまな方法でドラッグできますNOPASSWD
  2. sudoでパスワードが必要な場合は、キャッシュされた値を使用すると満足できます。大丈夫です。 sudoにパスワードが必要なのは、誰が電話をしているのかを確認することではありません(sudoはどのユーザーが電話したかを知っているためです)、キーボードを制御する人ではなく、コマンドを実行している人がまだ自分であることを確認することです。です。デフォルトでは、15分以内にパスワードを入力すると(timeoutこのオプションを使用して変更できます)、sudoはユーザーがまだコマンドを実行していると信じたいと思います。同じ端末にパスワードを入力する必要があります(したがって、ある端末にログインしたままにした後、その端末を放置してから別の端末を使用すると、他の人がそれを悪用して他の端末でsudoを使用することはできませんが、これは非常に弱い利点です。このオプションをfalseに設定してオフにすることができますtty_tickets

ほとんどですが、これはこのスレッドの範囲外です。

答え3

実際にsudoを必要としないコマンドに

これは命令ではありません。必要または不要修道。走るとき

sudo -u user command

システムはcommand次のように実行されますuser

呼び出しの成功とパスワードの必要性は、セキュリティポリシーsudoers(通常は設定/etc/sudoers)によって異なります。

関連情報