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


18

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

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

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

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

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


それらをすべて変更することで何を達成し*ますか?
ヨルダン

!現在管理している10以上のサーバーのうち、1つのサーバー上の1つのグループにのみ使用されていることがわかります。いくつかのチェックスクリプトを単純化するために、常に同じ文字を使用すると問題が解決します。もちろん、実際に同じことを意味する場合は、もちろんです。
トニン

回答:


28

ここで!*またはxは特別な意味を持っていると考えているため、それらの間に何らかの違いがあるかもしれないと心配しています。

事実、これらのキャラクターは、少なくとも西洋人の目には目立つために選ばれているだけです。これらの文字は、値の欠落、例外、または警告を意味します。boogaboogaここに置くとまったく同じ効果があります。

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

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

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

    シャドウパスワードに変換する(または、天国からあなたを助ける)日々がシャドウパスワードの背後にあるため、これは実際には重要なケースではありません。

  • ユーザーを使用するusermod -Lpasswd -l、ユーザーをロックする場合は、「このハッシュを解除して一致しないようにする」ための規則!である/etc/shadowため、特別な意味があります。

    格納されたハッシュに他の文字を追加すると、同様に破損します。この規則に違反すると、単にユーザーのログインのロックが解除されるusermod -Upasswd -uロックが解除されます。同様に、偽のキャラクターを追加して手でロックしたので、削除して手でロックを解除できます。

    ただし、これはこの質問に関しては単なるトリビアです。、groupmod -Lまたはgpasswd -l、したがって、!コンベンションはありません/etc/group

    その他のトリビア:あなたがあればしている手でロックユーザーアカウントに行く、あなたは近づかなければならない[A-Za-z0-9/\]ものはハッシュのための有効な文字であるため、セット。これが、の代わりにここでusermod使用!する1つの理由ですx

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


非常に完全な回答をありがとう。現在、サーバー上のユーザーとグループをチェックするスクリプトを書いていますが、そのフィールドで他の文字または文字シーケンスが見つかるかどうかも知りたいと思いました。あなたの答えと、それほど些細ではない詳細から、私はこれについてはるかに良い見解を持っています。再度、感謝します!
トニン

1
スクリプティングのために、あなたはおそらく電話getpwent(3)と友人になるはずです。Perlの標準ライブラリには、これらのラッパーがあります。他のUnixシステム管理者向けのスクリプト言語も同様です。そのようなラッパーなしで言語を使用している場合、これはトレードアップの良い言い訳になります。:)
ウォーレンヤング

あなたはまだ...ほぼ6歳に答えてくれてありがとう、物事を読んでいるなら、私は歴史的な理由の人々のいくつかは次のようなものを使用して見るxと、*「未使用」パスワードフィールドをマークします。ただ不思議です...マニュアルページには、フィールドが空のままである可​​能性が非常に高いと書かれています(データベースフィールドではNULLと呼ばれることがあります-特にNULLと空の文字列が同じであると定義するOracleでは)。では、/ etc / groupに戻ります。フィールドを空のままにするのではなく、なぜxor !またはを使用するの*ですか これらの文字と同様に、2つの連続したコロンが目立ちます。重要ではない-ちょうど好奇心が強い
-mathguy

1
@mathguy:空のパスワードフィールドは「パスワードなし」を意味し、実際のパスワードと決して一致しない文字を含むパスワードフィールドとは異なります。ほとんどのUnixシステムはグループパスワードを使用しないため、違いはありませんが、ほとんどのLinuxシステムのように、トラブルに巻き込まれるような習慣を身に付けたくないでしょう/etc/shadow。また、二重コロンも同様に明確であるという概念を拒否します。クイック、空のフィールドはいくつあります::::::か?いくつになりました:x:*:!:x:*:か?コロンの数は同じですが、答えは異なります。
ウォーレンヤング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.