9

最近の Unix または Linux システムでは、どのコード セットに/etc/passwdユーザー名が格納されているかをどのように判断できますか? ユーザー名にアクセント記号付きの文字を含めることは許可されていますか? /etc/passwdファイルに UTF-8 を含めることはできますか? UTF-8が含まれていることがわかりますか?暗号化またはハッシュ化される前のパスワードの平文はどうですか?

明らかに、ユーザー名とその他のデータが 0x00..0x7F の範囲に制限されている場合 (とにかく 0x00 を除外している場合)、UTF-8、8859-1、または 8859-15 の間に違いはありません。存在する文字はすべて同じようにエンコードされます。

また、/etc/passwd「Unix ベースのマシン上のユーザー識別および認証データベース (ディレクトリ サービスと呼ばれることもあります)」の略語として使用しています。通常は PAM を介してアクセスされ、ローカルから他のマシンでホストされることもあります。 1つですが、実際にはローカルハードディスク上のファイルであり、慣習的に と呼ばれ/etc/passwd、多くの場合/etc/shadow「. /etc/groupまた、グループ データベース (多くの場合ファイル)に関する同等の質問には同じ答えがあると想定しています。

4

1 に答える 1

4

すべてアスキーです。ただし、パスワード自体は保存されず、一方向ハッシュの結果のみが保存されます。パスワード自体にどの文字を使用できるか疑問に思っている場合は、ロケールによって異なります。これにより、端末が処理できる文字が制限されます。「男のロケール」を参照

BSD のマニュアルページから:

「/etc/passwd ASCII パスワード ファイル...」

ユーザー名に関して言えば、Solaris は ASCII しかサポートしていません。他の Unix-en について話すことはできません。

「Solaris 2 および Solaris 7 のすべてのオブジェクトが、任意の文字で構成される名前を持つことができるわけではありません。次のオブジェクトの名前は、ASCII 文字で構成される必要があります。

* User names, group name, and passwords
* System name ...

"

于 2009-09-11T17:18:39.463 に答える