*と!の意味 / etc / shadowの2番目のフィールドで?


20

私の知る限り、/ etc / shadowの2番目のフィールドはユーザーの暗号化されたパスワードです。しかし、一部のユーザー例えばdaemonユーザーが持っている*(Ubuntuの12.04)私の環境では、フィールドにroot持って!フィールドに。

!「すべてのパスワードが無効です。このユーザーでログインすることはできません。」のような意味だと思います。しかし、そのためのドキュメントが見つかりませんでした。

どういう意味*し、!shadowファイルで?

回答:


23

「!」そして「!!」は本質的に同じことを意味しますが、異なるツールはどちらかを使用passwd -lします。たとえば、感嘆符のペアを使用します。usermod -L一方、1つだけを使用します。

通常、「*」を持つアカウントにはパスワードがありません(たとえば、常にログインが無効になっています)。これは、パスワードハッシュエントリをまったく持たないアカウントとは異なります。この場合、パスワードは必要ありません(ほとんどの場合、プロンプトも表示されません)。

無効なハッシュ(「*」、「!」、および「!!」のすべて)である場合、アカウントを効果的にロックし、そのアカウントへのログインを防止します。多くの場合、これは/ etc / passwdファイルでアカウントのシェルを/ bin / falseまたは/ sbin / nologinのようなものに設定することによりさらに促進されます。

以前に有効なパスワードを設定した後でユーザーのアカウントがロックされている場合、パスワードハッシュに感嘆符が付いていることがよくあります。これは、アカウントのロックが解除されるとパスワードが再び機能するようになるためです。


詳細な説明をありがとう。これはとても役に立ちます!
鉄砂

2
問題ない。私が言及するのを忘れていた(暗に示した)ことの1つは、passwdでアカウントをロックし、usermodでロックを解除しようとすることです。最初の「!」のみが削除されますが、機能しません。
Sirex

2
答えは100%正確ではありません。*その列にアスタリスクがある場合、私の経験から、公開鍵認証を使用して完全に正常にログインできます。一方、!はそのユーザーのすべてのログインを実際にブロックします。
マイケルハートル

2
これは、sshd構成ファイルの「usepam」の設定に依存します。arlimus.github.io/articles/usepam
Sirex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.