2009-09-11 13 views
7

現代のUnixまたはLinuxシステムでは、/etc/passwdファイルにどのユーザ名が格納されているかをどのように設定できるのでしょうか?ユーザー名にアクセント付き文字を含めることができますか(たとえばISO 8859-1または8859-15の0x80..0xFFの範囲) /etc/passwdファイルにUTF-8が含まれていますか?それにUTF-8が含まれていると伝えられますか?暗号化またはハッシュされる前のパスワードのプレーンテキストはどうですか?どのコードセットが/ etc/passwdに格納されていますか?それはUTF-8になりますか?ユーザー名にはどのような制限がありますか?

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

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

答えて

4

すべてASCIIです。しかし、パスワード自体は保存されません - 一方向ハッシュの結果のみ。パスワード自体にどんな文字が入るのだろうかと疑問に思っているならば、それはあなたの端末が扱うことができる文字を制限するロケールに依存します。私はSolarisのみASCIIをサポートしていることを伝えることができ、 "男のロケール"

From the BSD man page:

"/ etc/passwdファイルASCIIパスワードファイル..." ユーザ名については

を参照してください。私は他のUnix-enのために話すことができません。

の "Solaris 2およびSolarisでのすべてのオブジェクトは、名前は任意の文字で構成されている7canない。The names of the following objects must be composed of ASCII characters:

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

"

+0

はあなたが主張のための証拠書類(URL)を提供することができますか?/ASCII/ASCII以外のバイトを/ etc/passwdファイルに入力するとどうなりますか? –

+1

追加情報をありがとう。米国の人々(8859-1の端末)、ドイツ(8859-15)、台湾(UTF-8)のマシンにアクセスしているとします。どのコードセットが現在保存されているパスワードファイルですか? –

+0

まだすべてのASCII。入力できる内容は、端末のロケールによって異なります。しかし、ハッシュ関数の出力は常にASCIIになります。たとえば、好きな文字を含むファイルを作成し、その上にmd5を実行します。元のファイルのキャラクタセットは、生成されたハッシュの文字セットとは何の関係もありません。 (伝統的にpasswdハッシュはcryptで生成されていますが、md5はありません) – nont

関連する問題