【useradd,userdel】Linuxコマンド_ユーザーアカウントの作成・削除する

Linuxでは複数のユーザーアカウントを作成することができます。
新規でユーザーアカウントを作成するには「useradd」コマンドを使用します。

また、作成したユーザーアカウントを削除するには「userdel」コマンドを使用します。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「useradd」,「userdel」コマンドの使い方(Linux)

以下では「useradd」コマンドを用いてユーザー「user01」というアカウントを作成・削除を実施しました。

「useradd」の使い方

「useradd」では「-m」オプションを使用してコマンドを使用することにより、新規ユーザーのホームディレクトリが存在しない場合にホームディレクトリを作成します。

この「useradd」コマンドはスーパーユーザーのみで実行可能となります。

関連記事

ファイルやディレクトリなどの書き込みや権限の移行など、システムの管理に関係する作業は「管理者権限(スーパーユーザ)」が必要です。 このスーパーユーザは一般ユーザーから変更する場合は「su」コマンドを使用します。 「su」[…]

VPS_比較
$ su -
パスワード:
[root]# useradd -m user01
[root]# passwd user01
ユーザー user01 のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

また、新規ユーザーを作成する際にオプションと引数で情報を設定することができます。
※以下コマンドオプションを参照

オプションを指定しない場合はデフォルトの値が採用されます。
オプションや引数で指定できる項目は以下となります。

  • ユーザーID
  • グループ名、グループID
  • ホームディレクトリ
  • ログインシェル…etc

最後にユーザーアカウントに対してパスワードを設定します。
「useradd」コマンドで「-p」オプションを使用することで作成と同時にパスワードを設定することも可能です。

「userdel」の使い方

謝ってユーザーアカウントを作成したり、不要になった場合などはユーザーを削除することができます。

そのような場合は「userdel」コマンドを使用します。
以下では「user02」というアカウントを削除した例となります。

「useradd」と同じく、スーパーユーザーに昇格しないとコマンドを実行することができません。

$ su -
パスワード:
[root]# userdel user02

上記コマンドを簡単にユーザーアカウントは削除されますが、ユーザーを削除する場合は十分に注意が必要となります。

期限付きのユーザーアカウントを作成する

ユーザーアカウントは利用期限を設けることも可能です。
以下では2022年3月1日に対象のユーザーアカウント(test3M)が無効になるように設定をします。

$ useradd -e 2022-3-1 test3M

ユーザーアカウント情報の確認

ユーザーアカウントの情報は「/etc/」配下で管理されています。
以下ではそれぞれのファイルの内容を紹介します。

ファイル: /etc/passwd

以下ファイルではそれぞれのユーザーアカウントの情報が「:(コロン)」で区切られて記述されています。

デフォルトで作成した「test」というユーザーは次のように表示されています。
※パスワードが設定されている場合、以下の表示で「x」と記述されます。暗号化されたパスワードファイルは「/etc/shadow」に記載されます。

$ cat /etc/passwd

test:x:1001:1001::/home/test:/bin/bash

ユーザー情報は「:(コロン)」区切りで左から以下の情報となります。

  • ユーザー名
  • パスワード
  • ユーザーID
  • グループID
  • コメントフィールド
  • ホームディレクトリのパス
  • ログインシェル

ファイル: /etc/shadow

このファイルではユーザーアカウントの暗号化されたパスワードなどの情報が表示されます。
以下では「test」ユーザーのアカウント情報が記載されています。

$ cat /etc/shadow

test:$6$dsZKgrEXXwqbiyLZ$wTys2G6dJphTatT6TlSuhrvkpVp576r35LwBv5n09oddqTlCuOkDKiYN1taKT4CDHIS4BPqWrAufZH3j9C9Kx/:19028:0:99999:7:::

「test」ユーザーアカウントの情報は「:(コロン)」区切りで左から以下の情報となります。

  • ユーザー名
  • 暗号化されたパスワード
  • 1970年1月1日からパスワードが変更されたまでの日数
  • パスワードが変更可能となるまでの日数
  • パスワード変更するまでの日数
  • パスワード有効期限が来る前にユーザーが警告を受ける日数
  • パスワード有効期限が過ぎたアカウントが使用不可となるまでの日数
  • 1970年1月1日からアカウントが使用不可になるまでの日数
  • 予約フィールド

「useradd」コマンドオプション

「useradd」コマンドのオプションは以下の通りとなります。

$ useradd --help
使い方: useradd [オプション] LOGIN
        useradd -D
        useradd -D [オプション]

オプション:
  -b, --base-dir BASE_DIR       新アカウントのホームディクトリの
                                ベースディレクトリ
  -c, --comment COMMENT         新アカウントの GECOS フィールド
  -d, --home-dir HOME_DIR       新アカウントのホームディレクトリ
  -D, --defaults                useradd のデフォルト設定を表示または変更
  -e, --expiredate EXPIRE_DATE  新アカウントの期限切れ日付
  -f, --inactive INACTIVE       新アカウントのパスワード無効化日数
  -g, --gid GROUP               新アカウントの主グループの名前または ID
  -G, --groups GROUPS           新アカウントの補助グループのリスト
  -h, --help                    このヘルプを表示して終了する
  -k, --skel SKEL_DIR           雛型ディレクトリに指定のものを使う
  -K, --key KEY=VALUE           /etc/login.defs のデフォルトより優先される
  -l, --no-log-init             ユーザを lastlog, faillog のデータベースに
                                追加しない
  -m, --create-home             ユーザのホームディレクトリを作成する
  -M, --no-create-home          ユーザのホームディレクトリを作成しない
  -N, --no-user-group           ユーザと同名のグループを作成しない
  -o, --non-unique              UID が同じユーザの作成を許す
  -p, --password PASSWORD       新アカウントの暗号化されたパスワード
  -r, --system                  システムアカウントを作成します
  -R, --root CHROOT_DIR         chroot するディレクトリ
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             新アカウントのログインシェル
  -u, --uid UID                 新アカウントのユーザ ID
  -U, --user-group              ユーザと同じ名前のグループを作成する
  -Z, --selinux-user SEUSER     SELinux のユーザマッピングに指定した
                                SEUSER を使う

「userdel」コマンドオプション

「userdel」コマンドのオプションは以下の通りとなります。

$ userdel --help
使い方: userdel [オプション] LOGIN

オプション:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    このヘルプを表示して終了する
  -r, --remove                  ホームディレクトリとメールスプールを削除する
  -R, --root CHROOT_DIR         chroot するディレクトリ
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -Z, --selinux-user            このユーザの SELinux ユーザマッピングを
                                全て削除する

「useradd」,「userdel」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!