/ etc / passwdはどのコードセットに保存されますか? UTF-8にできますか?ユーザー名にはどのような制限がありますか?

StackOverflow https://stackoverflow.com/questions/1412193

質問

最新のUnixまたはLinuxシステムでは、 / etc / passwd ファイルにユーザー名が格納されているコードセットをどのように確認できますか?ユーザー名にアクセント記号付きの文字を含めることは許可されていますか(たとえば、ISO 8859-1または8859-15の0x80..0xFFの範囲)。 / etc / passwd ファイルにUTF-8を含めることはできますか? UTF-8が含まれていると言えますか?暗号化またはハッシュされる前のパスワードのプレーンテキストはどうですか?

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

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

役に立ちましたか?

解決

すべてASCIIです。ただし、パスワード自体は保存されず、一方向ハッシュの結果のみが保存されます。パスワード自体にどのような文字が含まれているのか疑問に思っている場合、それはロケールに依存します。これにより、端末が処理できる文字が制限されます。 " man locale"

を参照

BSD manページから:

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

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

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

scroll top