Linuxユーザー名はなぜ数字で始めることができないのですか?

Linuxユーザー名はなぜ数字で始めることができないのですか?

技術的な理由はありますか?これはLinuxまたはUnixの初期のアーティファクトですか?それでは、維持され続ける理由はありますか?

ベストアンサー1

一部のコマンド(例chown:)はユーザー名または数値ユーザーIDを受け入れることができるため、すべての数値ユーザー名を受け入れると、そのコマンドは中断されます。

名前が数字で始まり、一部の文字を含めることを許可する規則は、努力する価値がないと見なすことができ、代わりに名前をアルファベット文字で始める必要があります。

編集する:

この場合、一部のディストリビューションはこの制限を超えたもので、他の回答で表示されます。GNUコアユーティリティドキュメント:

POSIXでは、最初に指定された文字列を名前で解析し、失敗した場合にのみそれをIDとして解釈するためにこれらのコマンドが必要です。

$ useradd 1000   # on most systems this will fail with:
                 # useradd: invalid user name '1000'
$ mkdir /home/1000
$ chown -R 1000 /home/1000   # This will first try to map
    # to username "1000", but this may easily be misinterpreted.

「0」というユーザーを追加すると、問題のみが発生します(UID 0 == rootユーザー)。ただし、グループ/ユーザーIDパラメータの前に「+」を付けて整数として解釈することができます。

おすすめ記事