[Linux] ユーザーを新規作成する - useradd

Linux上にユーザーアカウントを新規に作成するコマンドはuseraddです。

$ sudo useradd -m (ユーザー名)

細かい設定の変更は作成後にいつでも行うことができるので、オプションを指定し忘れた場合は各種設定を行うコマンドを追加で実行すれば大丈夫です。作成したばかりならユーザーを削除してももちろんOKです。

オプション

-m, --create-home

ユーザー作成と同時にホームディレクトリを作成します。

通常は/homeの直下にユーザー名と同じ名前のディレクトリが作成されますが、オプションを指定することで別の場所を指定することも可能です。

-bオプションでホームディレクトリを設置する、ベースとなるディレクトリを指定できます。以下の例では/var/tmp/fooをホームディレクトリとすることができます。

$ sudo useradd -m -d /var/tmp/foo foo

-g, --gid

作成するユーザーが所属するLinux上のグループを指定します。「グループ名」か「グループID」を指定します。グループ自体は事前に作成しておく必要があります。

以下の例ではapacheグループに追加した上でユーザーfooを作成します。

$ sudo useradd -m -g apache foo

-e, --expiredate

作成するユーザーの利用期間を設定します。指定した日付を超えると自動的に利用不能になります。日付の書式はYYYY-MM-DDです。

以下の例ではユーザーfooの有効期限を「2020年10月5日」までに設定した状態で作成します。

$ sudo useradd -m -e 2020-10-05 foo

ゲストユーザーや、お仕事を依頼した相手の契約期間が決まっている場合など一時的にアカウントを払い出す場合などに指定しておくと良いでしょう。

-s, --shell

ユーザーがログインした際に利用するシェルを任意で指定できます。必ずフルパス(絶対パス)で指定する必要があります。

以下の例ではユーザーfooのログインシェルをzshに変更した状態で作成します。

$ sudo useradd -m -s /bin/zsh foo

-u, --iud

作成するユーザーのユーザーIDを指定した状態で作成します。ユーザーを削除したが、もう一度同じユーザーIDで作成したい場合などに活用できます。

その他、様々なオプションが用意されていますので、必要に応じてman useraddしてみてください。

デフォルト値

現在の値を確認する

-Dオプションを付けて実行すると、useraddする際の各種デフォルト値を確認できます。このときも管理者権限(root権限)が必要です。

$ sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

値を変更する

デフォルト値を変更するには-Dオプションを付けた状態で、変更したい項目をそれぞれ指定します。

以下の例では、デフォルトのログインシェルをzshに変更しています。このコマンドを実行して以降は、毎回オプションを指定することなく作成したユーザーすべてzshになっています。

$ sudo useradd -D -s /bin/zsh

その他に設定できる項目は以下の通りです。

オプション 役割
-g 所属するグループ
-b ホームディレクトリの場所
-e アカウントの有効期限
-f デフォルトのパスワードが有効期限切れになってから、アカウントを利用不能にする日数
-s ログインシェル

その他

adduser

useraddではなくadduserコマンドも存在しますが、CentOSやAmazonLinuxでは単なるシンボリックリンクです。

$ ls -la /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 1117  2018 /usr/sbin/adduser -> useradd

ただしUbuntuなど一部のディストリビューションでは対話形式でアカウント作成できる機能など、useraddとは異なる機能が追加されている場合があります。