
/etc/shadowファイルと/etc/passwdファイルは、すべてのUNIXとUNIXのようなシステムで同じ形式ですか、それとも重要な違いはありますか?
ファイルの場所や名前ではなく、ファイルの構文を意味します。
答え1
私が知る限り、すべてのUnixバリアントには、/etc/passwd
アプリケーションがファイルを直接読み取ることができるように、伝統的なレイアウトのファイルがあります。ファイルの各行には、次に対応するコロンで区切られたレコードが含まれています。struct passwd
フィールド:
- ユーザー名(ログイン)
- 暗号化パスワード(存在する場合)
- ユーザーID(数字、10進数)
- デフォルトグループID(数字、10進数)
- ガイコス遺伝。このフィールドは、表示目的を除いてシステムプログラムでは使用されません。通常、カンマで区切られたフィールドのリストで、最初の3つは名前、オフィス番号、電話番号です。
- メインディレクトリ
- ログインシェル
異なるシステム間に存在する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/passwd
Decades には全ユーザーのリストが含まれるという保証はありません。ユーザーは他のデータベースから来ることができます。新シェケル(YP)またはLDAP。システム管理者は/etc/passwd
ファイルを直接編集しないでください。vipw
代わりに、システムが提供している場合(そうでない場合は、マニュアルを確認して、ユーザーデータベースの変更に推奨される方法を確認してください)。
上記の内容はグループにも適用されます。のフィールドは/etc/group
次のとおりです。struct group
メンバー:このグループをセカンダリグループにしたいユーザーのグループ名、パスワード(ほとんどは使用されません)、数値グループID、およびカンマ区切りのユーザー名のリスト。 Linux用のファイルがありますが、/etc/gshadow
まだグループ認証が広く採用されていないため、ほとんど使用されません。
答え2
まず、すべてのUNIXシステムが/etc/shadowを使用しているわけではないので、同じではありません。 D BSDは/etc/master.passwdを使用し、AIXは/etc/security/passwdを使用します。