web-dev-qa-db-ja.com

/ etc / groupの2番目のフィールドの意味は何ですか?

サンプルの/etc/groupファイルには、次のエントリが含まれています。

root:*:0:
adm:!:4:logcheck
antoine:x:1000:

私が読んだmanページ(DebianとOSX)では、2番目のフィールドはグループパスワードを格納するためのものであると述べています。それらはめったに使用されないため、アスタリスク*またはxは通常、空白のままにするのではなく、その中に配置されます。

shadowのマニュアルページには、この2番目のフィールドにcrypt関数の結果を格納する必要があるとも記載されています。また、無効な結果(*または!など)が保存されている場合は、パスワードを認証方法として使用できないことを意味します。

groupファイルについても同様ですか? groupファイルの3つの異なる文字がすべて同じ意味になるのはなぜですか?安全にすべてを*に変更できますか?

18
Tonin

_!_、_*_またはxはここでは特別な意味があると考えているため、両者に違いがあるのではないかと心配しています。

実際には、これらのキャラクターは、少なくとも西洋人の目には目立つために選択されているということです。これらの文字は、欠損値、例外、または警告を示しています。ここにboogaboogaを置いて、正確に同じ効果を得ることができます。

これは、Unixタイプのシステムでパスワードが処理される方法が原因です。システムがパスワードエントリを受信すると、それは ハッシュ であり、保存されているハッシュと比較されます。したがって、ここで重要なのは、有効なパスワードハッシュにできない可能性がある文字または文字のシーケンスを使用することです。 (また、明らかな理由で、コロンを含めてはいけません。)

コアOSの観点からこれらの文字に違いはありませんが、いくつかの規則があります。

  • Linuxのpwconv(8)プログラムがxを見つけると、「このパブリックパスワードハッシュをシャドウパスワードファイルにすでに移動した」という意味になります。

    シャドウパスワードに変換する(または天国がfrom)シャドウパスワードに変換する日々が今や遅れているため、これは実際には重要なケースではありません。

  • _usermod -L_または_passwd -l_を使用してユーザーをロックする場合、_!_は_/etc/shadow_で特別な意味を持ちます。 」

    格納されたハッシュに他の文字を追加すると、同様に壊れます。この規則に違反すると、_usermod -U_または_passwd -u_がユーザーのログインをロック解除できなくなります。同様に、偽のキャラクターを追加して手動でロックしたので、削除して手動でロックを解除できます。

    しかし、それはこの質問に関しては単なる雑学です。 _groupmod -L_や_gpasswd -l_がないため、_!_には_/etc/group_の規則がありません。

    さらに雑学:ユーザーアカウントを手動でロックする場合は、_[A-Za-z0-9/\]_セットに近づかないでください。これらはハッシュの正当な文字であるためです。これがusermodxではなく_!_を使用する理由の1つです。

すべての_/etc/group_パスワードフィールドを正規化しても、気分が良くなれば問題はないと思います。そうすることで、これらのファイルを手作業でハッキングすることに満足しているとすでに言っているので、いずれにせよ、区別を気にするツールを使用するのは、たぶんそうではないでしょう。いずれにしても、この変更が日常のシステム運用に影響を与えることはありません。

28
Warren Young