3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Linux)Debian系(Ubuntu)でのユーザ作成はuseraddよりadduserがよい

Ubuntuで下記のようにユーザ作ったんですが、ユーザのホームディレクトリが作成されません。おまけに既定のシェルが bash でなく、sh になってます。

# useradd hogeuser

CentOSの時はuseraddでちゃんとできたんですが。。。

と思って調べてみると RedHat系 は adduser は useradd へのシンボリックリンクになっているようです。

Debian系(Ubuntu)では、adduserはuseraddのラッパーのPerlスクリプトとなっているようです。

つまり、adduserは対話形式でユーザー情報を指定して登録するコマンド、useraddはオプションと引数のみを指定してユーザーを登録するコマンドという位置づけになっているようですね。

Debian系のuseraddは気が利かないのでホームディレクトリを作ったり、シェルを bash にするにはオプションで指定してあげないといけません。

なので、Debian系でユーザ作成をする場合は adduser コマンドを使った方がよさそうです。

しかし、このadduserコマンドは気が利きすぎており "9999999" とかの全て数字のユーザ名を作ろうとすると、下記のように怒られます。

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.

結局 useradd コマンドでユーザを作成しました。

とりあえず下記のようにホームディレクトリの作成とシェルをbashにして、パスワードを与えてやりました。

# useradd -m -s /bin/bash 9999999

# passwd 9999999

RedHat系とDebian系の違いを痛感した3流PGです。

参考:

adduserとuseraddの違いをちゃんと意識しておきたい - 冷蔵庫って不要じゃんと思ってみるんダダダイアリー

adduserとuseraddの違い - ブックマクロ開発に

まさおのブログ (表): Ubuntu でユーザを追加する (adduser を使うべき)

adduserとuseraddの違い - DUNNO-CLEARブログ2.0:

Ubuntu Manpage: useradd