web-dev-qa-db-ja.com

Linuxのユーザー名にはどの文字を使用すればよいですか?

ドメイン名にちなんだ名前のユーザーアカウントを作成したい。 adduserは、ユーザー名がNAME_REGEX正規表現に一致する必要があると不平を言っています。

adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

問題なく、useraddを使用してユーザーを追加できます。 .-_を許可するように正規表現を変更してはいけない理由はありますか?

問題の原因となるので、ユーザー名に使用できない文字は何ですか?

これはデフォルトのNAME_REGEXです。

NAME_REGEX="^[a-z][-a-z0-9]*\$"
41
Ed Haber

デフォルトのNAME_REGEXで推奨されている標準に従うことをお勧めします。 * NIXでは実際にユーザー名のほとんどすべてを置くことができますが、仮定を行うライブラリコードで奇妙な問題が発生する可能性があります。適例:

http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html

あなたへの私の質問:異常な句読点を取り除いた場合、互いに衝突する多くのドメイン名がありますか?たとえば、「QUALITY-ASSURANCE」と「QUALITYASSURANCE」の両方をドメイン名として持っていますか?持っていない場合は、異常な文字を削除し、ユーザー名として残っているものを使用するというポリシーを採用できます。

また、/ etc/passwd情報の GECOSフィールド の「実際の名前」セクションを使用して、変更されていない元のドメイン名を保存でき、スクリプトで簡単に抽出できます。

27
steveha

より具体的には、 POSIX( "Unixのポータブルオペレーティングシステムインターフェイス")標準(IEEE標準1003.1 2008)の状態


.431ユーザー名

ユーザーを識別するために使用される文字列。ユーザーデータベースも参照してください。 POSIX.1-2008に準拠するシステム間で移植できるように、値は移植可能なファイル名文字セットの文字で構成されます。 <hyphen>文字は、ポータブルユーザー名の最初の文字として使用しないでください。


.278ポータブルファイル名文字セット

The set of characters from which portable filenames are constructed.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

この標準に準拠するユーザー名はPOSIXに準拠しており、安全である必要があります。

25
HopelessN00b

NAME_REGEXから、大文字と小文字のaからzと0から9までの数字以外はすべて悪いと推測できます。

1
wzzrd