回答:
で、現代(フルアウトUnicodeサポート付き)システム、これはべきではない問題で- 「いけない」を重視しました。その答えで引用されているように、
デフォルトは
NAME_REGEX="^[a-z][-a-z0-9]*\$"
これは現在のシステムでは厳しすぎるかもしれませんが、「心配する必要が1つ少ない」のように、管理が容易になります。ユーザー名は多くの場所で使用されることに注意してください。たとえば、ホームディレクトリはおそらく次のような形式になり/home/username
ます。ほとんどの健全なファイルシステムは完全なUnicodeサポートを備えていますが、コンピューター関連の場合と同様に、あらゆる状況での健全性は保証されていません。
システムで使用される実際のログイン名(これらの規則に該当)がのUIDにマップされ、/etc/passwd
文字列である「フルネーム」が存在することに注意してください(ほとんどの有効な文字を入力できますが、 「非ASCII」の警告)。
対処方法:該当する場合、ユーザー名には発音区別符号なしの名前(ラテン語以外のスクリプトの場合はローマ字)を使用し、フルネームには実際の形式を使用します。/ etc / passwdのエントリは次のようになります。
martrang:x:1001:1001:Märt Rang,,,:/home/martrang:/bin/bash
非ASCIIログイン名の使用は一般的にサポートされておらず、トラブルのレシピのように聞こえます。UTF-8は事実上の標準エンコーディングになりつつありますが、他のエンコーディングを使用する人はまだたくさんいます(特に英語圏以外では、互換性のない他の8ビットまたは16ビットエンコーディングを長い間使用してきました)。 )。たとえば、ユーザー名を現在のロケールのエンコーディングに変換するのではなく、現在のロケールのエンコーディングに従ってユーザー名を解釈しようとするアプリケーションに遭遇する可能性があります。ログイン名はメールアドレスの左側にもあり、メールが通過するすべてのシステムでサポートされ、尊重されている選択したエンコーディングに依存しているため、問題が発生する可能性が高くなります。
ログイン名はコンピューターを対象としています。ログイン名にASCIIを使用します。フルネームは人間を対象としています。フルネームにはUTF-8を使用してください。
最後の質問は答えるのが最も簡単です:慈善になりたい場合は、伝統、実用性、単純性(開発者にとって)および移植性、または代わりに、もしそうでなければ、後方性、非実用性(ユーザーにとって)、無知および非移植性t。US-ASCIIは、ほとんどすべての場所で、黎明期から使用されてきた文字セット(若者向けのプレWeb)です。
多くの多くのアプリケーションでは、英語のキーボードで表示される範囲外の文字(および場合によってはそれ以外の文字)の組み込みサポートはありません。つまり、ソフトウェアはそれをサポートしている場合とサポートしていない場合があり、予期せぬ事態のみが発生する可能性があります。