一部のコマンド (例:chown
) は、ユーザー名または数字のユーザー ID のいずれかを受け入れることができるため、すべて数字のユーザー名を許可すると、それが壊れます。
数字で始まり、いくつかのアルファを含む名前を許可するルールは、おそらく努力する価値がないと考えられていました。代わりに、英字で始める必要があるだけです。
編集:
他の回答から、一部のディストリビューションがこの制限を覆しているように見えます。この場合、GNU Core Utils のドキュメントによると:
<ブロック引用>POSIX では、これらのコマンドは、最初に指定された文字列を名前として解決しようとし、1 回だけ失敗してから、それを 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 引数の前に「+」を付けて、強制的に整数として解釈できることに注意してください。
数値を使用した ubuntu 14.04 でのテストは次のとおりです。
[email protected]:~# useradd 232
[email protected]:~# mkdir /home/232
[email protected]:~# chown 232.232 /home/232
[email protected]:~# passwd 232
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
[email protected]:~# login
c2 login: 232
Password:
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information disabled due to load higher than 2.0
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
$
$ whoami
232
およびユニコード U+1F600 を使用するもの -
[email protected]:~# useradd
[email protected]:~# mkdir /home/
[email protected]:~# chown . /home/
[email protected]:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
[email protected]:~# login
c2 login:
Password:
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information disabled due to load higher than 2.0
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
$ whoami
これはおそらく私が持っていた最悪のアイデアです:
[email protected]:~# useradd '&#%^()[email protected]~*?<>=|'
[email protected]:~# passwd '&#%^()[email protected]~*?<>=|'
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
[email protected]:~# mkdir '/home/&#%^()[email protected]~*?<>=|'
[email protected]:~# chown '&#%^()[email protected]~*?<>=|.&#%^()[email protected]~*?<>=|' '/home/&#%^()[email protected]~*?<>=|'
[email protected]:~# login
c2 login: &#%^()[email protected]~*?<>=|
Password:
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 4.4.0-22-generic x86_64)
**** text removed ****
applicable law.
$ whoami
&#%^()[email protected]~*?<>=|
明らかに、そのようなユーザーを追加できますが、長期的にはこれが良い考えかどうかはわかりません.
*Nix ユーザー名は通常、ユーティリティ useradd
によって作成される 32 文字の長さの文字列です。 .あなたが言ったように、これは初期の Unix (技術的には BSD) 標準の直接の結果です。 FreeBSD のマニュアルページ passwd(5)
によると :
ログイン名はハイフン (`-') で始めてはならず、8 ビット文字、タブ、スペース、またはこれらの記号を含めることはできません:`,:+%^()[email protected]~*? <>=|/"'. ドル記号 (`$') は、Samba で使用する最後の文字としてのみ使用できます。コロン (`:') を含むフィールドは許可されません。データベース。
一部の *Nix システムでは、ユーザー名に特殊文字が含まれていると不明瞭なエラーがスローされていたため、最終的に特殊文字は禁止されました。最新の *Nix システムのほとんどでは、passwd
を変更するのは比較的簡単です。 /useradd
特殊文字のユーザー名をサポートするためのユーティリティですが、ほとんどの人はそのような重要でないことを変更することをためらっています。
編集:
Adonis が言ったように、実際には最新の Linux ディストリビューションでこれを行うことは可能ですが、それはお勧めできません (特に標準化されたプログラムやレガシー プログラムに遭遇した場合)。