good-arrow’s blog

https://good-arrow.net/

Ubuntu でユーザー名に「 . 」(ドット/ピリオド)を使用+ホームディレクトリ作成

adduser コマンドが不便だ

Ubuntu のユーザー追加には adduser が推奨されているが、
adduser で使用できる正規表現が以下の通りとなっている。


[/etc/adduser.conf]

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


これだとメールサーバーとして構築した時に、ドットが使用できない。
なので adduser.conf の正規表現を書き換えれば使用できるようになる。

しかし、adduser はユーザー作成とパスワード設定が、コマンド1行で実行できない。
ホームディレクトリの指定が面倒。オプション項目の要求も無駄に多い。
とにかく adduser が不便と言いたい。



useradd コマンドを使う

回避策として useradd を使用する。
Ubuntu 20.04 の場合(18.04 も同じ?)、useradd の設定が全てコメントアウトされている。
基本的に 設定行 の コメント を外すだけでいい。念のため備忘録も兼ねてサンプルも載せておく。


[/etc/default/useradd]

SHELL=/bin/sh
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

これで ユーザー追加時 に ホームディレクトリ や メールスプール も一緒に設定される。



ユーザー追加コマンド

1行で、ユーザー追加 + ホームディレクトリ作成 + パスワード設定 をする。

sudo useradd -m -p `perl -e "print(crypt('password', 'XY'));"` username
  • -m はホームディレクトリ作成のオプション
  • usernamepasswordXY の部分は任意



補足

XY の部分は crypt 関数の SALT値 という パスワード暗号化 に使用する パラメーター です。
任意の英数字2文字を指定します。使用可能文字の正規表現[./0-9A-Za-z] となります。
crypt - Perldoc Browser