実際にSudo
を必要としないコマンドにSudo
を適用すると、
時々それは私のパスワードを要求しません。たとえば、私の$HOME
、Sudo ls
の下にあります。
しかし、私はそれが他のいくつかのコマンドのために機能することを覚えていますが、どちらのコマンドを忘れたかです。
したがって、実際にSudo
を必要としないコマンドが与えられたときに、Sudo
がパスワードを要求するかどうかをどのように決定するのか疑問に思いました。 /etc/sudoers
にそれを指定するルールはありますか?
私の本当の問題は、du
を使用すると、一部のディレクトリで「アクセス権が拒否されました」と表示されることがあり、場合によっては、おそらく一部のディレクトリでアクセス権がないためでしょうか?私はSudo
をdu
に関係なく適用し、関係なくパスワードを要求されると思っていましたが、実際には自分のディレクトリにはありません。
典型的な構成では、コマンドは関係ありません。 Sudoを初めて使用するときはパスワードを入力する必要があり、次の15分間は特定のシェルでパスワードを必要としません。
コンピュータの観点からは、「Sudoを必要とするコマンド」などはありません。すべてのユーザーが任意のコマンドを実行できます。結果は、「アクセスが拒否されました」または「そのようなファイルまたはディレクトリはありません」などのエラーメッセージにすぎない場合がありますが、コマンドを実行することは常に可能です。
たとえば、アクセス権のないコンテンツを持つディレクトリツリーでdu
を実行すると、アクセス権エラーが発生します。これが「アクセスが拒否されました」という意味です。 Sudo du
を実行すると、Sudoはdu
をrootとして実行するため、権限エラーは発生しません(これがrootアカウントの要点です。rootは常に権限を持っています)。 Sudo du
を実行すると、du
はrootとして実行され、Sudo
の起動後はdu
はまったく関与しません。 duが権限エラーを検出するかどうかは、Sudoの動作にはまったく関係ありません。
Sudoを必要とするコマンドがあります何か便利なことをするために。有用性は人間の概念です。コマンドがrootとして実行されたときに有用であるが、アカウントの下で実行されなかった場合は、Sudo(またはrootとしてコマンドを実行する他のいくつかの方法)を使用する必要があります。
Sudoがパスワードを要求するかどうかは、2つの要因によって決まります。
authenticate
オプションをfalseに設定し、NOPASSWD
タグを使用して適切なルールを設定するなど、いくつかの方法でオフにできます。timeout
オプションで変更できます)。同じ端末でパスワードを入力する必要があります(ある端末にログインしたまま、その端末を無人のままにして別の端末を使用すると、他の端末でSudoを使用するために誰かがこれを利用することはできません。ただし、これは非常に弱い利点であり、tty_tickets
オプションをfalseに設定することで無効にできます)。¹ ほぼ、しかしそれはこのスレッドの範囲を超えています。
Sudo
は、実行するように要求されたコマンドが他のユーザー(通常はroot)として実行する必要があるかどうかを知りません。知っているのはその構成だけです。これにより、どのユーザーがSudo
を実行できるか、どのユーザーを「ターゲット」として、どのコマンドを実行できるかが決まります。また、パスワードが必要かどうか、どちらが必要か、認証トークンを保持するかどうかも決定します。
デフォルトのDebian構成を使用している場合は、後者がおそらくここに関係しています。Sudo
は、特定の端末で初めて使用するときにパスワードを要求し、次に認証トークンを保持します一定の時間。同じ時間枠内で同じ端末でSudo
を再利用しても、パスワードの入力は求められません。
実際にSudoを必要としないコマンドに
コマンドneedsまたはneeds not Sudoではありません。あなたが走るとき
Sudo -u user command
システムはcommand
をuser
として実行します。
呼び出しが成功したかどうか、およびパスワードが要求されたかどうかは、セキュリティポリシーsudoers
に依存します(通常は/etc/sudoers
)。