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 11月 17 2018 /usr/sbin/adduser -> useradd
ただしUbuntuなど一部のディストリビューションでは対話形式でアカウント作成できる機能など、useradd
とは異なる機能が追加されている場合があります。