(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 を使うべき)