ユーザー名にドットを含めることの欠点は何ですか?


27

学生.が、ユーザー名にドット()を使用することのマイナス面を尋ねました。例えば:john.doe

これは、システムまたはアプリにどのような影響を与えますか?

回答:


38

POSIX ユーザー名について次のように述べています。

[...] 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_REGEXUbuntu のデフォルトは(/etc/adduser.confマンページから)です:

^[a-z][-a-z0-9]*$
  • 小文字で始まり、任意の数のダッシュ、小文字、または数字。いいえ_@または.

そう、

結論.として、Ubuntuユーザー名にドットを使用できますNAME_REGEXが、で変更する必要があり/etc/adduser.confます。POSIXに準拠しているため、POSIX .準拠のプログラムでユーザー名に問題が発生することはありません。

ユーザー名でドットを有効にするには

  1. ターミナルで次のコマンドを実行します。

    sudo nano /etc/adduser.conf
    
  2. この行を見つけます(ファイルの終わり近く)

    #NAME_REGEX="^[a-z][-a-z0-9]*$"
    

    そしてそれを

    NAME_REGEX='^[a-z][-.a-z0-9]*$'
    

    ことに注意-ブラケット表現の最初の文字でなければなりません[...]それ以外の場合は、範囲を指定するものとして扱われますa-z

  3. プレスCtrl+ X、それからY、それからEnter


参照:


@ vasa1それを指摘してくれてありがとう、修正。
キリ14年

2
こんにちは、minerz029、答えを受け入れる前に、私が見る限り、それは間違いなく素晴らしいものです。Ubuntuがこの決定をする理由を教えてください。
ルイスアルバラード14年

2
@LuisAlvarado:より限定された文字セットを使用してユーザー名を要求する[非POSIX]プログラムとの互換性のためである可能性があります。Ubuntuがデフォルトで許可する文字は、ほぼすべてのプログラムで動作することがほぼ保証されています。adduserのマンページでは、デフォルトの正規表現が「最も保守的」であり、ユーザー名の安全な側にあると説明しています。
キリ14年

1
これはうまくいきませんでしたが、追加することNAME_REGEX="^[a-z][-a-z0-9_.]*\$?$"/etc/adduser.confできました。
マリオ

1
正規表現を変更しないでください。useradd代わりに呼び出してくださいsudo useradd -m my.user。それがUserifyで行っていることであり、クロスプラットフォームでもあります。
ジェイミーソンベッカー

3

ユーザー名を読み取るアプリケーションは、ユーザー名がルールに従っていると想定しているため、ユーザー名を処理できない正規表現を使用する場合があります。


しかし、同様に、彼らはディストリビューションによってなされた仮定と衝突する仮定を作るかもしれませんよね?
0xC0000022L

3

Marc Haberは、Debianバグ#604242(デフォルトでユーザー名にドットを許可する)の潜在的な欠点について説明しています:

ユーザー名にドットが含まれているとchown、ユーザー名とグループ名の区切り文字としてドットを引き続き使用するsciptsで問題が発生し ます。chownそれでもドットを受け入れる場合は、この表記法を使用するスクリプトがあります。ユーザー名にドットが含まれていると、スクリプトが壊れます。

chown区切り文字としてのドットの受け入れを停止するまで、現在のデフォルト(ローカル構成で上書き可能)を維持することをお勧めします。

そして、chownそれはもはや文書化されていないが、まだ、セパレータとしてドットを受け入れます。POSIXの互換性が優先されることに同意します。実際、いくつかのシステムでドットを含むユーザー名を使用しても悪影響はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.