Linux

Ubuntu ではユーザー名に大文字が使えません(デフォルトでは)

投稿日:2019年2月1日 更新日:

Ubuntu で ユーザーを追加するには adduser というコマンドを使います。

例えば、”foo” という名前のユーザーを追加するには、以下のコマンドになります。

$ adduser foo

この際、ユーザー名には 大文字が使えません

原因は、adduser コマンドの内部で使用されている NAME_REGEX という変数です。

この変数には、ユーザー名として指定可能な文字列の正規表現がセットされているのですが、このデフォルトの値が

^[a-z][-a-z0-9_]*\$

となっているのです。この正規表現では大文字が使えません。

「この正規表現だと、どんな文字列が使えるのか?」は、例えば Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript で試すことができます(その際、バックスラッシュは外して下さい)。

大文字が使えるようにしたいのであれば、/etc/adduser.conf ファイル内の NAME_REGEX 変数を自分で上書きする必要があります。

例えばこんな感じです。

NAME_REGEX="^[A-Za-z][-A-Za-z0-9_]*\$"

※ どうやら、Ubuntu がベースとしている Debian でも同じような設定になっているようです。

参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

CentOS

CentOS 6 で yum update した時、remi-php70 レポジトリ内のパッケージの依存性解決ができない場合の解決方法

目次現象解決方法 その1解決方法 その2解決方法 その3まとめ参考 現象 remi-php70 リポジトリを使っている CentOS 6 の環境で PHP関連のパッケージを更新しようと思い、以下のコマ …

xdebug

Ubuntu 16.04.3 LTS + PHP 7.2 の環境に Xdebug をインストールする

2018年1月29日に、Xdebug 2.6.0 (stable版) がリリースされました。 Homestead にもまた Xdebug がデフォルトでインストールされるようになるのではないかと思いま …

Linux

【Linux】man コマンドの基本的な使い方

Linux をコマンドラインで使う場合、man コマンドでマニュアルを読むことができます(man は manual の略です)。 このページでは、この manコマンドの簡単な使い方について説明します。 …

docker

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。 例えば、 まず、firewall-cmd コマンドで 8080番ポート …

Linux

シェルスクリプト:配列の要素をループ処理する書き方

シェルスクリプトで、配列の要素をループ処理する記述方法を紹介します。