こんにちは。AWSが好きになったのでLinux学び直しをしているねこだくさんです。
LinuxはWEBサーバーで使用することが多かったため、あまり複数のユーザーで使用するという状況がありませんでした。
開発案件においては使う場面が結構あるので管理方法について学びます。
前回のあらすじ
前回はテキストエディタVimについて学びました。

ユーザーの管理方法について
Linuxにおいてユーザーは主に3種類あります。
- 管理者ユーザー
- 一般ユーザー
- システムユーザー
管理者ユーザーであるrootを使用することはすべてのコマンドを使えて便利である一方、操作ミスや万一パスワードが漏洩してしまうなどした場合セキュリティに大きな問題を来します。
このため用途に応じたユーザーを設定し管理することが必要となります。
ユーザーを追加するuseraddコマンド、ユーザーを削除するuserdelコマンド、パスワードを変更するpasswdコマンドの使い方についてEnvaderを使用して学びます。
※以降適宜sudoをつけるなどして管理者ユーザー権限を使用する必要があります。
ユーザーを追加
useraddコマンドで新規ユーザーを追加します。
useradd [オプション] ユーザー名
※ユーザーの一覧は/etc/passwdファイルをcatコマンド等を使用することで確認できます。
root:x:0:0:root:/root:/bin/bash
:区切りで左から
- ユーザー名 root
- ダミーパスワード x
- ユーザーID 0
- グループID 0
- コメント root
- ホームディレクトリ /root
- ログインシェル /bin/bash
となっています。
オプション
-mオプションを使用することで、ホームディレクトリを作成します。(存在しない場合)
-Dオプションを使用することで、デフォルト値の確認やヘンクを行うことができます。
sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
ユーザーを削除
userdelコマンドで既存のユーザーを削除します。
userdel [オプション] ユーザー名
オプション
-rオプションを付けることでユーザーのホームディレクトリとメールスプールも削除します。
※メールスプール
/var/spool/mail受信メールが溜まるところ
パスワードを変更
passwdコマンドで指定したユーザーのパスワードを変更することができます。
passwd [オプション] ユーザー名
※一般ユーザーは自分のパスワードのみ変更できます。
オプション
| Option | Description |
|---|---|
| -i | ユーザーをロック |
| -u | ロックを解除 |
| -s | パスワード状態の表示 |
| -d | パスワード削除 |
コード参照:ユーザー管理について
【2026-08-15 追記】結局どう打てばユーザーが作れるのか
ここから下は、2022年に書いた上の本文に、2026年8月のterralienが後から足した追記です。当時の本文は直していません。「linux user add」で来てくださる方に対して、上の本文がuseradd [オプション] ユーザー名という書式しか出しておらず、そのとおり打ってもログインできるユーザーはできないので、その穴を埋めます。
まずはこの1行(Debian / Ubuntu 系)
sudo useradd -m -s /bin/bash tanaka
sudo passwd tanaka
useradd tanakaだけだと、ホームディレクトリが無く、ログインシェルも空っぽで、パスワードも未設定のユーザーができあがります。作った本人が「あれ、ログインできない」となるやつですね。上の本文でさらっと書いている-mは、実は必須級のオプションです。
| オプション | 何をするか | 付けないとどうなるか |
|---|---|---|
-m |
ホームディレクトリを作る(/etc/skelの中身がコピーされる) |
ホームが無い。ログインしても「そんなディレクトリはない」と言われる |
-s /bin/bash |
ログインシェルを指定する | /etc/default/useraddのSHELL次第。それも未設定だと/etc/passwdのシェル欄が空になる |
-G グループ名 |
補助グループに入れる(-G sudoなど) |
最初のグループにしか所属しない |
passwd(別コマンド) |
パスワードを設定する | パスワード未設定のまま。パスワード認証ではログインできない |
-mが要るかどうかはディストリビューションによって違います。manには「このオプションが指定されず、/etc/login.defsのCREATE_HOMEも有効でなければ、ホームディレクトリは作られない」と書かれていて、CREATE_HOMEをtrueにしてある系(RHEL系など)では-m無しでも作られます。「手元では動いたのに本番で動かない」の典型がここなので、迷ったら-mを付けておくのが安全です。
作ったあとの確認
id tanaka # UID・GID・所属グループ
getent passwd tanaka # /etc/passwd の行(ホームとシェルを目で見る)
sudo passwd -S tanaka # パスワードの状態(P=設定済み / L=ロック / NP=未設定)
本文で「ユーザーの一覧は/etc/passwdをcatで」と書きましたが、getentのほうが行儀がいいです。LDAPなど/etc/passwd以外にユーザー情報がある環境でも同じように引けるので。
Debian / Ubuntu にはadduserという楽な道もあります
sudo adduser tanaka
これ1本で、ホームディレクトリの作成もパスワードの設定も対話で全部やってくれます。Debianのmanにはuseraddなどの低レベルなツールに対する「よりフレンドリーなフロントエンド」だと書かれていて、Debianの流儀に沿ったUID・GIDを選び、skeleton付きのホームを作ってくれる、という位置づけです。
ただしadduserはDebian系に固有のコマンドで、RHEL系だとuseraddへのシンボリックリンクだったり、そもそも無かったりします。手で1人作るならadduser、スクリプトに書くならuseradd -m、という使い分けで困りません。
passwdのオプション表を訂正します
上の表の-iと-sが間違っていました。当時の表はそのまま残しますが、正しくはこうです。
| オプション | 正しい意味 | 当時の表 |
|---|---|---|
-l |
パスワードをロックする(先頭に!を付けて、どんな入力とも一致しない値にする) |
載っていない |
-u |
ロックを解除する | 合っています |
-S(大文字) |
アカウントの状態を表示する | -sと書いていました |
-d |
パスワードを削除して空にする | 合っています |
-i |
ロックではありません。パスワードが期限切れになってから何日でアカウントを無効化するか、の日数 | 「ユーザーをロック」と書いていました |
ついでに、manの-lのところには「これはアカウントを無効化するものではない」という注意も書かれています。パスワードは通らなくなりますが、公開鍵認証のような別の方法ではログインできてしまうんですね。「ロックしたから大丈夫」と思い込むと危ないやつです。
——「今のところ余り使う機会は思いつきません」「いざという時ぐぐってでも使えるようインデックスしました」と当時のわたしは書いているわけですが、4年後にこの記事を読み返して分かったのは、インデックスした先が間違っていたということでした。ぐぐって自分の記事に辿り着いて、間違った表を見る。しっかりしろよという話です。
学んだこと
- ユーザーの追加と削除方法
- ユーザーパスワード変更や削除の方法
今のところ余り使う機会は思いつきませんが、いざという時ぐぐってでも使えるようインデックスしました。
参考資料


【2026-08-15 追記ぶんの出典】
- useradd(8) — Linux manual page(man7.org):
-mとCREATE_HOMEの関係、-s、-Gの定義 - passwd(1) — Linux manual page(man7.org):
-l/-u/-S/-d/-iの定義と、ロックがアカウント無効化ではないという注意 - adduser(8) — Debian manpages:
useraddに対するフロントエンドという位置づけ