学生.
が、ユーザー名にドット()を使用することのマイナス面を尋ねました。例えば:john.doe
これは、システムまたはアプリにどのような影響を与えますか?
学生.
が、ユーザー名にドット()を使用することのマイナス面を尋ねました。例えば:john.doe
これは、システムまたはアプリにどのような影響を与えますか?
回答:
[...] IEEE Std 1003.1-2001に準拠するシステム間で移植可能にするため、値は移植可能なファイル名文字セットの文字で構成されます。ハイフンは、ポータブルユーザー名の最初の文字として使用しないでください。
...ポータブルファイル名の文字セットは次のとおりです。
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 . _ -
また、ファイルのマンページには/etc/adduser.conf
次のように記載されています。
VALID NAMES
adduser and addgroup enforce conformity to IEEE Std 1003.1-2001,
which allows only the following characters to appear in group
and user names: letters, digits, underscores, periods, at signs
(@) and dashes. The name may not start with a dash. The "$" sign
is allowed at the end of usernames (to conform to samba).
An additional check can be adjusted via the configuration
parameter NAME_REGEX to enforce a local policy.
両方の仕様にドットが含まれているように見えますが、Ubuntu(少なくとも私の13.04では)はドットを禁止しているようです:
⊳ sudo adduser as.df
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
NAME_REGEX
Ubuntu のデフォルトは(/etc/adduser.conf
マンページから)です:
^[a-z][-a-z0-9]*$
_
、@
または.
。結論.
として、Ubuntuユーザー名にドットを使用できますNAME_REGEX
が、で変更する必要があり/etc/adduser.conf
ます。POSIXに準拠しているため、POSIX .
準拠のプログラムでユーザー名に問題が発生することはありません。
ターミナルで次のコマンドを実行します。
sudo nano /etc/adduser.conf
この行を見つけます(ファイルの終わり近く)
#NAME_REGEX="^[a-z][-a-z0-9]*$"
そしてそれを
NAME_REGEX='^[a-z][-.a-z0-9]*$'
ことに注意-
ブラケット表現の最初の文字でなければなりません[...]
それ以外の場合は、範囲を指定するものとして扱われますa-z
。
プレスCtrl+ X、それからY、それからEnter。
参照:
NAME_REGEX="^[a-z][-a-z0-9_.]*\$?$"
は/etc/adduser.conf
できました。
useradd
代わりに呼び出してくださいsudo useradd -m my.user
。それがUserifyで行っていることであり、クロスプラットフォームでもあります。
ユーザー名を読み取るアプリケーションは、ユーザー名がルールに従っていると想定しているため、ユーザー名を処理できない正規表現を使用する場合があります。
Marc Haberは、Debianバグ#604242(デフォルトでユーザー名にドットを許可する)の潜在的な欠点について説明しています:
ユーザー名にドットが含まれていると
chown
、ユーザー名とグループ名の区切り文字としてドットを引き続き使用するsciptsで問題が発生し ます。chown
それでもドットを受け入れる場合は、この表記法を使用するスクリプトがあります。ユーザー名にドットが含まれていると、スクリプトが壊れます。
chown
区切り文字としてのドットの受け入れを停止するまで、現在のデフォルト(ローカル構成で上書き可能)を維持することをお勧めします。
そして、chown
それはもはや文書化されていないが、まだ、セパレータとしてドットを受け入れます。POSIXの互換性が優先されることに同意します。実際、いくつかのシステムでドットを含むユーザー名を使用しても悪影響はありません。