現代の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
ファイル)に関する同等の質問に同じ答えがあると仮定しています。
はあなたが主張のための証拠書類(URL)を提供することができますか?/ASCII/ASCII以外のバイトを/ etc/passwdファイルに入力するとどうなりますか? –
追加情報をありがとう。米国の人々(8859-1の端末)、ドイツ(8859-15)、台湾(UTF-8)のマシンにアクセスしているとします。どのコードセットが現在保存されているパスワードファイルですか? –
まだすべてのASCII。入力できる内容は、端末のロケールによって異なります。しかし、ハッシュ関数の出力は常にASCIIになります。たとえば、好きな文字を含むファイルを作成し、その上にmd5を実行します。元のファイルのキャラクタセットは、生成されたハッシュの文字セットとは何の関係もありません。 (伝統的にpasswdハッシュはcryptで生成されていますが、md5はありません) – nont