web-dev-qa-db-ja.com

sudo -k vs. Sudo -K

-Kと-kについてmanページが何と言っているか知っています:

‑k

‑K(確実に強制終了)オプションは‑kと似ていますが、ユーザーのキャッシュされた資格情報を完全に削除し、コマンドやその他のオプションと組み合わせて使用​​できない点が異なります。このオプションにはパスワードは必要ありません。すべてのセキュリティポリシーが資格情報のキャッシュをサポートしているわけではありません。

‑k [コマンド]

単独で使用する場合、Sudoの‑k(kill)オプションは、ユーザーのキャッシュされた資格情報を無効にします。次回Sudoを実行するときは、パスワードが必要になります。このオプションはパスワードを必要とせず、ユーザーが.logoutファイルからSudo権限を取り消すことができるようにするために追加されました。すべてのセキュリティポリシーが資格情報のキャッシュをサポートしているわけではありません。パスワードが必要なコマンドまたはオプションと組み合わせて使用​​すると、-kオプションを使用すると、Sudoはユーザーのキャッシュされた資格情報を無視します。その結果、Sudoはパスワードの入力を求め(セキュリティポリシーで必要な場合)、ユーザーのキャッシュされた資格情報を更新しません。

したがって、これらのオプションと組み合わせてコマンドを使用する必要がない場合、KよりもKが常に使用するのに適したオプションであると仮定するのは正しいですか?

7
Codrguy

Sudo -KSudo -kは、コマンドなしで同じことを行います。つまり、ユーザーのキャッシュされた資格情報を無効にします。

Sudo -k command ...は異なります:現在のコマンドのユーザーのキャッシュされた資格情報をignoresしますが、それらを無効にしません。

キャッシュされた資格情報を使用または破壊せずに単一のコマンドを実行する場合は、コマンドで-kを使用します。 (なぜあなたがそれをしたいかは実際にはわかりませんが、機能はそこにあります。)

キャッシュされた資格情報を上書きする場合は、Sudo -kまたはSudo -Kのいずれかを使用します。

概要:

Sudo -k           # clobbers cached credentials
Sudo -K           # clobbers cached credentials
Sudo -k command   # ignores cached credentials
Sudo -K command   # invalid

更新:

この答えを再検討すると、-k-Kの唯一の違いは、-kがコマンドを受け入れ、-Kが受け入れないことです。 -Kは、-kが提供しない機能を実際には追加しないため、2つの別々のオプションがあると便利だとは思いません。 manページの文言には微妙な違いがあります。 -k "ユーザーのキャッシュされた資格情報を無効にします"、-K "ユーザーのキャッシュされた資格情報を完全に削除します"。資格情報に影響を与える方法の実際の違いを示すとは思いません

7
Keith Thompson

Sudo -Kは、すべてのターミナルセッションでキャッシュされた資格情報を無効にします。これは、DEをロックする前に実行すると便利です。

Sudo -kは、現在のターミナルセッションのキャッシュされた資格情報のみを無効にします。