kazmax - Linux で自宅サーバー

Linux 新規ユーザの作成 - useradd

Linuxに新規ユーザーを作成するには、コマンド「 useradd 」を使用します。 「 useradd 」コマンド実行時に、新規ユーザーのホームディレクトリや、グループなどを指定する事もできます。

単純に「 useradd ユーザー名 」で簡単にユーザーを追加できますが、新規ユーザーのデフォルトの情報は確認しておいた方が良いでしょう。

また、新規ユーザーの作成は「 root 」で行います。

Last Update : 2007年06月19日

Linux 新規ユーザの作成 - useradd 項目

  1. 「 useradd 」のデフォルト設定を確認する
  2. 「 useradd 」のデフォルト設定を変更する
  3. 「 useradd 」で新規ユーザーを追加する
  4. 「 useradd 」のその他のオプション

1. 「 useradd 」のデフォルト設定を確認する

useraddコマンドに「 -D 」オプションを指定する事で、 作成されるユーザーのデフォルトの設定値を確認する事ができます。

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

各項目の意味は以下の通りとなります。

GROUP グループIDを100に設定する。Red Hat系のディストリビューションの場合、/etc/login.defs で GID_MIN が 500 と設定されているので、グループIDは 500 から順番に与えられる。
HOME デフォルトのホームディレクトリの場所。この場合、「 /home/ユーザー名 」でホームディレクトリが作成される。
INACTIVE ユーザーのパスワードが無効になってから、そのユーザーのアカウントが無効になるまでの期限。
「 -1 」は無期限を意味する。
EXPIRE ユーザーアカウントの有効期限。値が無い場合は無期限を意味する。
SHELL デフォルトのログインシェル名。
SKEL 新規ユーザーのホームディレクトリのテンプレート。
この場合、/etc/skel のコピーが新規ユーザーのホームディレクトリに作成される。

memo

なお、/etc/default/useraddファイルでも確認できます。

[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

2. 「 useradd 」のデフォルト設定を変更する

useraddコマンドに「 -D + オプション 」で、オプションに与えられた値に応じてデフォルト値を変更する事が可能です。

-b default_home 新規ユーザのホームディレクトリへのパス。default_home の後にユーザ名を付け加えたものが新規ディレクトリ名として使われる。
-e default_expire_date ユーザアカウントが無効となる日付。日付は YYYY-MM-DD の形式。
-f default_inactive パスワードの使用期限が切れてからアカウントが使用不能となるまでの日数。「 -1 」で無期限。
-g default_group 新規ユーザの属する主グループのグループ名またはグループ ID。グループ名はすでに存在するものでなければならない。グループ ID は、すでに存在するグループに対応するものでなければならない。
-s default_shell 新規ユーザのログインシェル。

例:ホームディレクトリを「 /home/users 」に、ユーザーのパスワードが無効になってからアカウントを60日で無効にする。

[root@localhost ~]# useradd -D -b/home/users -f60
[root@localhost ~]# useradd -D ← 確認
GROUP=100
HOME=/home/users ← 変更OK
INACTIVE=60 ← 変更OK
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

memo

/etc/default/useraddファイルを直接変更してもデフォルト設定の変更は可能です。

3. 「 useradd 」で新規ユーザーを追加する

useraddコマンドに、追加したいユーザー名を指定する事で新規ユーザーを作成できます。 オプションの指定無しで、デフォルト設定のユーザーと、ホームディレクトリが作成されます。

新規ユーザーhogehogeを作成します。

[root@localhost ~]# useradd -D  ← 初期設定確認
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
[root@localhost ~]# useradd hogehoge  ← ユーザー作成
[root@localhost ~]# id -a hogehoge  ← ユーザー確認
uid=514(hogehoge) gid=514(hogehoge) 所属グループ=514(hogehoge)
[root@localhost ~]# ls -ld /home/hogehoge/  ← ホームディレクトリ確認
drwx------  4 hogehoge hogehoge 4096  4月 15 01:12 /home/hogehoge/

4. 「 useradd 」のその他のオプション

デフォルト設定じゃないユーザーを作成したい場合はオプションを指定してユーザーを作成します。

例:ユーザIDを600、主グループをusers、サブグループsub1とsub2に属すユーザーhogeを作成する。

[root@localhost ~]# useradd -u 600 -g users -G sub1,sub2 hoge  ← ユーザー作成
[root@localhost ~]# id -a hoge
uid=600(hoge) gid=501(users) 所属グループ=501(users),503(sub1),514(sub2)

以下オプション詳細です。

-M ホームディレクトリを無しにする。
-c comment 新規ユーザのコメント。
-d home_dir ホームディレクトリを指定する。
-e expire_date ユーザアカウントが無効となる日付。日付は YYYY-MM-DD の形式。
-f inactive_days パスワードがの使用期限が切れてから、このオプションで与えた日数経過するとアカウントは永久に使用不能となる。値として 0 を指定すると、パスワードが失効した直後にアカウントは使用不能となり、-1 を指定すると、この機能は無効となる。デフォルト値は -1 である。
-g initial_group ユ ーザの属する主グループのグループ名またはグループ ID。
-G group,[...] ユーザの属するサブグループのグループ名またはグループ ID。グループはコンマで区切り、空白を含めてはいけない。
-s shell ユーザのログインシェル名。
-u uid ユーザ ID。
-o UIDの重複を許可する。

memo

-o 」オプションを使用する事により、UIDを重複させてアカウントを追加する事が可能です。

これを利用すると、同一のユーザーが、異なるログインシェル、ホームディレクトリを使用してログインする時に、 各アカウントに同一のアクセス権を与える事ができるようになります。

Linux 基礎知識 関連記事