/etc/shadow および /etc/passwd 形式の互換性

/etc/shadow および /etc/passwd 形式の互換性

/etc/shadowファイルと/etc/passwdファイルは、すべてのUNIXとUNIXのようなシステムで同じ形式ですか、それとも重要な違いはありますか?

ファイルの場所や名前ではなく、ファイルの構文を意味します。

ベストアンサー1

私が知る限り、すべてのUnixバリアントには、/etc/passwdアプリケーションがファイルを直接読み取ることができるように、伝統的なレイアウトのファイルがあります。ファイルの各行には、次に対応するコロンで区切られたレコードが含まれています。struct passwdフィールド:

  1. ユーザー名(ログイン)
  2. 暗号化パスワード(存在する場合)
  3. ユーザーID(数字、10進数)
  4. デフォルトグループID(数字、10進数)
  5. ガイコス遺伝。このフィールドは、表示目的を除いてシステムプログラムでは使用されません。通常、カンマで区切られたフィールドのリストで、最初の3つは名前、オフィス番号、電話番号です。
  6. メインディレクトリ
  7. ログインシェル

異なるシステム間に存在する1つは、構文にどれだけの自由を持つことができるかです。たとえば、GNU libc(Linuxなど)は、#コメント:で始まる行を無視します。 GNU libcは先行スペースも無視するので、インデントが可能です。無効な行が原因で、プログラムはファイルの処理を停止したり、次の行に移動したりする可能性があります。

ほとんどの最新システムは、2番目のフィールドに暗号化されたパスワードを保存しなくなりました。このフィールドの内容は、ユーザーがパスワードを設定したかどうかは明らかではありません。 (これが見つかったとしても、SSHキー、シングル認証キーなど、他の認証方法が多いため、ユーザーがログインできるかどうかは明らかではありません。時間パスワード、バイオメトリクス、スマートカード...)。

パスワードがにない場合、/etc/passwdその場所はシステムによって異なります。これUnix用ロゼッタストーン多くのUNIXバリアントが言及されています。

  • ソラリスは/etc/shadow、Linuxを含む他の人がコピーしました。 Linux と Solaris シャドウファイルの形式は同じです。他の名前のシステムが/etc/shadow同じ形式を使用しているかどうかは不明です。
  • BSDシステムは/etc/master.passwd、より高速なアクセスのために追加で提供されるデータベースファイルがあります。pwd_mkdb

/etc/passwdDecades には全ユーザーのリストが含まれるという保証はありません。ユーザーは他のデータベースから来ることができます。新シェケル(YP)またはLDAP。システム管理者は/etc/passwdファイルを直接編集しないでください。vipw代わりに、システムが提供している場合(そうでない場合は、マニュアルを確認して、ユーザーデータベースの変更に推奨される方法を確認してください)。

上記の内容はグループにも適用されます。のフィールドは/etc/group次のとおりです。struct groupメンバー:このグループをセカンダリグループにしたいユーザーのグループ名、パスワード(ほとんどは使用されません)、数値グループID、およびカンマ区切りのユーザー名のリスト。 Linux用のファイルがありますが、/etc/gshadowまだグループ認証が広く採用されていないため、ほとんど使用されません。

おすすめ記事