- 1 1. はじめに
- 2 2. Ubuntuでユーザー一覧を確認する方法
- 3 3. 現在ログイン中のユーザーを確認する方法
- 4 4. ユーザーの詳細情報を確認する方法
- 5 5. Ubuntuでのユーザー管理(追加・削除・編集)
- 6 6. シナリオ別の活用例
- 7 7. FAQ(よくある質問)
1. はじめに
Ubuntuは、多くのユーザーが利用する人気のLinuxディストリビューションであり、個人利用から企業のサーバー環境まで幅広く使用されています。Ubuntuのシステムを管理する際には、ユーザーアカウントの管理が不可欠です。特に、システムに登録されているユーザー一覧を確認することは、セキュリティ管理やアカウントの整理に役立ちます。
この記事では、Ubuntuでユーザー一覧を確認する方法を詳しく解説します。初心者から上級者まで役立つように、基本的なコマンドから詳細情報の取得方法までを網羅的に紹介していきます。
2. Ubuntuでユーザー一覧を確認する方法
Ubuntuでは、ユーザー情報は特定のファイルやコマンドを使用することで簡単に取得できます。以下の方法でユーザー一覧を確認できます。
2.1 /etc/passwd
を使ったユーザー一覧の表示
Ubuntuでは、すべてのユーザー情報が /etc/passwd
ファイルに保存されています。このファイルを表示することで、登録されているすべてのユーザーを確認できます。
コマンド例
cat /etc/passwd
このコマンドを実行すると、次のような形式の情報が表示されます。
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash
各行のフィールドは「:
(コロン)」で区切られており、次の情報を含んでいます:
- ユーザー名
- パスワード(現在はxで非表示)
- ユーザーID(UID)
- グループID(GID)
- ユーザー情報(コメント)
- ホームディレクトリ
- デフォルトのシェル
このファイルにはシステムユーザーも含まれているため、通常のログイン可能なユーザーのみを抽出するには、次の方法を使用します。
2.2 ユーザー名のみを取得する
すべてのユーザー名のみを一覧表示する場合、次のコマンドを使用します。
cut -d: -f1 /etc/passwd
または awk
コマンドを使用することもできます。
awk -F':' '{ print $1 }' /etc/passwd
出力例:
root
user1
user2
2.3 特定のユーザーを検索する
特定のユーザーが存在するかを確認するには、grep
コマンドを使用します。
grep 'user1' /etc/passwd
このコマンドを実行すると、user1
に関する情報のみが表示されます。
2.4 /etc/group
を使ったグループ一覧の取得
ユーザーの所属するグループを確認する場合は /etc/group
を参照します。
cat /etc/group | cut -d: -f1
また、特定のユーザーが所属するグループを確認するには次のコマンドを使用します。
groups user1
出力例:
user1 : user1 sudo
これは user1
が sudo
グループにも所属していることを示します。

3. 現在ログイン中のユーザーを確認する方法
Ubuntuでは、システムに現在ログインしているユーザーを確認する方法がいくつかあります。特定のコマンドを使用することで、現在セッションを開いているユーザーや詳細なログイン情報を取得することができます。
3.1 who
コマンドを使用してログインユーザーを確認
who
コマンドは、現在ログインしているすべてのユーザーを一覧表示します。
コマンド例
who
出力例
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30
各フィールドの説明
- ユーザー名(ログインしているユーザー)
- 端末名(物理コンソール
tty1
やリモート接続pts/0
) - ログイン時刻
who
コマンドはシンプルで、ログインユーザーを素早く確認したいときに便利です。
3.2 w
コマンドを使用して詳細情報を確認
w
コマンドは who
コマンドよりも詳細な情報を提供します。
コマンド例
w
出力例
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshd
各フィールドの説明
- システムの稼働時間(up 2:15)
- 現在ログイン中のユーザー数(2 users)
- CPU負荷(load average)
- ユーザー名(USER)
- 接続端末(TTY)
- リモート接続元(FROM)
- ログイン時刻(LOGIN@)
- アイドル時間(IDLE)
- CPU使用状況(JCPU, PCPU)
- 実行中のプロセス(WHAT)
特に、SSH経由でログインしているユーザーのリモートIPアドレスが FROM
フィールドに表示されるため、リモートアクセスの管理や監視にも役立ちます。
3.3 users
コマンドを使用して簡単にログインユーザーを確認
ログイン中のユーザー名のみを簡単に一覧表示したい場合は users
コマンドが便利です。
コマンド例
users
出力例
user1 user2
このコマンドは who
の簡略版であり、ユーザー名のみをシンプルに表示します。
3.4 whoami
コマンドを使用して現在のユーザーを確認
現在のセッションで実行中のユーザーを確認したい場合は whoami
コマンドを使用します。
コマンド例
whoami
出力例
user1
このコマンドは、現在のターミナルで動作しているユーザー名を表示するだけなので、特定のユーザーでコマンドを実行しているか確認するのに役立ちます。
3.5 last
コマンドを使用して最近のログイン履歴を確認
last
コマンドを使用すると、過去にログインしたユーザーの履歴を確認できます。
コマンド例
last
出力例
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user2 tty1 Mon Feb 15 09:30 - 10:00 (00:30)
root tty1 Sun Feb 14 22:15 - 23:45 (01:30)
各フィールドの説明
- ユーザー名
- 接続端末(tty1, pts/0 など)
- リモート接続元(IPアドレス)
- ログイン開始時刻
- ログアウト時刻(still logged in は現在もログイン中)
- ログイン時間の合計(00:30 = 30分間)
このコマンドは、過去にログインしたユーザーを監視したり、不正アクセスを検出する際に役立ちます。
4. ユーザーの詳細情報を確認する方法
Ubuntuでは、登録されているユーザーの詳細情報を取得するためのコマンドがいくつか用意されています。特定のユーザーのUIDやグループ、ログインシェルなどを確認することで、適切な権限設定や管理が可能になります。
ここでは、id
、finger
、chage
などのコマンドを使った詳細情報の確認方法を解説します。
4.1 id
コマンドでユーザーのUID・GID・グループを確認
id
コマンドを使用すると、ユーザーのUID(ユーザーID)、GID(グループID)、および所属グループを確認できます。
コマンド例
id user1
出力例
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
各項目の説明
uid=1001(user1)
→ ユーザーID(システム内でのユーザー識別番号)gid=1001(user1)
→ グループID(メイングループ)groups=1001(user1),27(sudo),1002(docker)
→ 所属グループ一覧
この情報は、特定のユーザーがどのグループに属しているかを確認する際に役立ちます。
現在のユーザーの情報を確認する場合
id
このコマンドを実行すると、現在のユーザーのID情報が表示されます。
4.2 groups
コマンドでユーザーの所属グループを確認
特定のユーザーがどのグループに所属しているかを簡単に調べるには、groups
コマンドを使用します。
コマンド例
groups user1
出力例
user1 : user1 sudo docker
id
コマンドでもグループ情報を取得できますが、簡潔にグループ名だけを確認したい場合は groups
コマンドが便利です。
現在のユーザーのグループを確認する場合
groups
このコマンドを実行すると、現在のユーザーが所属するグループの一覧が表示されます。
4.3 finger
コマンドで詳細なユーザー情報を取得
finger
コマンドを使用すると、ユーザーのフルネーム、ログイン情報、シェルの種類など、より詳細な情報を取得できます。
インストール方法
finger
はデフォルトではインストールされていないため、まずは以下のコマンドでインストールします。
sudo apt install finger
コマンド例
finger user1
出力例
Login: user1 Name: User One
Directory: /home/user1 Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
各項目の説明
- Login → ユーザー名
- Name → 設定されている本名(空欄の場合もあり)
- Directory → ユーザーのホームディレクトリ
- Shell → 使用しているシェル
- Last login → 最後にログインした日時
システム管理者は、finger
コマンドを活用することで、どのユーザーがどのシェルを使用しているかなどを簡単に確認できます。
4.4 chage
コマンドでパスワード有効期限を確認
システム管理者は、chage
コマンドを使用して、特定のユーザーのパスワードの有効期限や最終変更日を確認できます。
コマンド例
sudo chage -l user1
出力例
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
各項目の説明
- Last password change → 最後にパスワードを変更した日
- Password expires → パスワードの有効期限
- Password inactive → パスワードが無効化されるまでの期間
- Account expires → アカウントが無効化される日
- Minimum number of days between password change → パスワード変更の最小間隔
- Maximum number of days between password change → パスワードの有効期間
- Number of days of warning before password expires → パスワードの有効期限前に警告を表示する日数
システム管理者はこの情報を利用して、パスワード管理ポリシーの設定やセキュリティ強化を行うことができます。
5. Ubuntuでのユーザー管理(追加・削除・編集)
Ubuntuでは、システム管理者が適切にユーザーを管理することが重要です。新しいユーザーの追加や削除、既存ユーザーの情報編集を行うことで、システムの安全性と運用効率を向上させることができます。本セクションでは、adduser
、deluser
、usermod
などのコマンドを使用したユーザー管理方法を解説します。
5.1 ユーザーの追加
Ubuntuで新しいユーザーを作成するには、adduser
コマンドまたは useradd
コマンドを使用します。
5.1.1 adduser
コマンド(推奨)
adduser
は対話形式でユーザーを追加する便利なコマンドです。
コマンド例
sudo adduser newuser
対話形式の流れ
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
作成されるもの
- ユーザーアカウント
- 専用のグループ
- ホームディレクトリ(
/home/newuser
) - ログイン用パスワード
- 基本的なユーザー情報
この方法は最も一般的で、初心者でも扱いやすいコマンドです。
5.1.2 useradd
コマンド(上級者向け)
useradd
コマンドは adduser
と異なり、よりシンプルかつスクリプト向けに設計されていますが、ホームディレクトリの作成などが自動で行われません。
コマンド例
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
オプションの説明
-m
→ ホームディレクトリを作成-s /bin/bash
→ ログインシェルを/bin/bash
に設定
このコマンドを使う場合、別途パスワードを設定する必要があります。
5.2 ユーザーの削除
不要になったユーザーアカウントを削除するには、deluser
または userdel
コマンドを使用します。
5.2.1 deluser
コマンド(推奨)
deluser
は adduser
の削除版で、シンプルにユーザーを削除できます。
コマンド例
sudo deluser newuser
ホームディレクトリも削除する場合
sudo deluser --remove-home newuser
このコマンドを実行すると、ユーザーのホームディレクトリ(/home/newuser
)も削除されます。
5.2.2 userdel
コマンド(上級者向け)
userdel
コマンドを使用すると、より細かい制御が可能です。
コマンド例
sudo userdel newuser
ホームディレクトリごと削除
sudo userdel -r newuser
userdel
は deluser
よりも直接的な方法ですが、使用時に注意が必要です。
5.3 ユーザーの編集
既存のユーザー情報を変更する場合、usermod
コマンドを使用します。
5.3.1 ユーザー名の変更
コマンド例
sudo usermod -l newname oldname
このコマンドを実行すると、oldname
が newname
に変更されます。
5.3.2 ホームディレクトリの変更
ユーザーのホームディレクトリを変更したい場合、-d
オプションを使用します。
コマンド例
sudo usermod -d /new/home/path user1
現在のホームディレクトリを新しい場所へ移動
sudo usermod -d /home/newuser -m user1
5.3.3 ユーザーの所属グループを変更
特定のユーザーを別のグループに追加したり、所属グループを変更したりする場合は、usermod -aG
を使用します。
ユーザーを sudo
グループに追加
sudo usermod -aG sudo user1
現在のグループを確認
groups user1
5.3.4 ユーザーのパスワードを変更
管理者が特定のユーザーのパスワードを変更するには、passwd
コマンドを使用します。
コマンド例
sudo passwd user1
出力例
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
このコマンドにより、user1
のパスワードが変更されます。
6. シナリオ別の活用例
Ubuntuのユーザー管理は、単に一覧を確認したり、追加・削除を行うだけではなく、特定の状況に応じた管理方法を知ることが重要です。本セクションでは、よくあるシナリオに応じたコマンドの活用例を紹介します。
6.1 特定の条件に合ったユーザーを検索
6.1.1 管理者(sudo権限を持つユーザー)の一覧を表示
システム管理者が、sudo権限を持つユーザーを確認したい場合は、getent
コマンドで /etc/group
ファイルを検索できます。
コマンド例
getent group sudo
出力例
sudo:x:27:user1,user2
出力結果の解説
sudo:x:27:
→ sudoグループの情報user1,user2
→ sudoグループに所属するユーザー
この方法を使うことで、管理者権限を持つユーザーを素早く確認できます。
6.1.2 ログイン可能なユーザーを一覧表示
通常、/etc/passwd
にはシステムユーザーも含まれますが、実際にログインできるユーザー を確認する場合、デフォルトのシェルを持つユーザーを検索すると便利です。
コマンド例
grep '/bin/bash' /etc/passwd
出力例
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
この方法のメリット
/bin/bash
や/bin/sh
を持つユーザーのみ表示されるnologin
設定されたユーザー(例:システムアカウント)は除外される
6.1.3 システムユーザー(ログイン不可)を一覧表示
システムユーザーは通常 /usr/sbin/nologin
や /bin/false
を設定されているため、以下のコマンドで確認できます。
コマンド例
grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd
出力例
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false
システムアカウントを確認することで、誤って削除しないように注意することができます。
6.2 定期的に不要なユーザーを削除する方法
6.2.1 最後にログインしたユーザーを一覧表示
長期間ログインしていないユーザーを削除する場合、last
コマンドを使用してログイン履歴を確認します。
コマンド例
lastlog
出力例
Username Port From Latest
root tty1 Mon Feb 12 14:02:08 +0000 2025
user1 pts/0 192.168.1.10 Mon Jan 15 10:30:12 +0000 2025
user2 pts/1 192.168.1.20 Never logged in
Never logged in
→ 一度もログインしたことがないユーザー
この情報を元に、不要なアカウントを削除するか判断できます。
アカウント削除のコマンド
sudo deluser user2 --remove-home
6.2.2 パスワードの最終変更日を確認
chage
コマンドを使用すると、ユーザーが最後にパスワードを変更した日を確認できます。
コマンド例
sudo chage -l user1
出力例
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
もしパスワードが長期間変更されていない場合、セキュリティ対策として強制的に変更を要求することも可能です。
パスワードを強制変更
sudo passwd --expire user1
これにより、次回ログイン時にユーザーは新しいパスワードを設定する必要があります。
6.3 SSH経由で接続しているユーザーを確認
遠隔管理時に、現在SSHで接続しているユーザー を確認することは重要です。
コマンド例
who | grep pts
出力例
user1 pts/0 192.168.1.10 11:30
これにより、リモートで接続しているユーザーとそのIPアドレスを確認できます。
6.4 一括で全ユーザーの情報をCSV出力
システム管理者が全ユーザーの情報をリスト化して保存したい場合、getent
コマンドを活用すると便利です。
コマンド例
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv
出力(users.csv の内容)
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
- ユーザー名、UID、GID、ホームディレクトリをCSV形式で出力
- Excelやスプレッドシートで分析可能
7. FAQ(よくある質問)
Ubuntuのユーザー管理に関するよくある疑問をまとめました。トラブルシューティングや管理の際に役立つ情報を掲載しています。
7.1 /etc/passwd
を直接編集しても大丈夫ですか?
回答
直接編集は 非推奨 です。/etc/passwd
はシステムの重要なファイルであり、誤って編集するとログインできなくなる可能性があります。
推奨される方法
usermod
コマンドや vipw
コマンドを使用することで、安全に編集できます。
安全な編集方法
sudo vipw
これにより、ロックがかかった安全な環境で /etc/passwd
を編集できます。
7.2 who
と users
コマンドの違いは何ですか?
回答
コマンド | 説明 |
---|---|
who | 現在ログイン中のユーザーを詳細に表示(ログイン時間・端末) |
users | ログイン中のユーザー名のみをシンプルに表示 |
実行例
who
出力例
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30
users
出力例
user1 user2
who
の方が詳細な情報を提供します。
7.3 特定のユーザーのログイン履歴を確認するには?
回答
last
コマンドを使用すると、特定のユーザーのログイン履歴を確認できます。
コマンド例
last user1
出力例
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user1 tty1 Mon Feb 10 09:30 - 10:00 (00:30)
これにより、どの端末・IPアドレスからログインしたか を確認できます。
7.4 ユーザーのパスワードを変更するには?
回答
管理者は passwd
コマンドを使用して特定のユーザーのパスワードを変更できます。
コマンド例
sudo passwd user1
出力例
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
パスワードを変更したユーザーは、次回のログイン時に新しいパスワードを使用する必要があります。
7.5 ユーザーを一時的に無効化する方法はありますか?
回答
usermod
コマンドを使用して、一時的にユーザーを無効化できます。
アカウントをロック
sudo usermod -L user1
このコマンドを実行すると、user1
のアカウントが一時的にロックされ、ログインできなくなります。
アカウントのロック解除
sudo usermod -U user1
このコマンドで、user1
のログインを再開できます。
7.6 特定のユーザーを sudo グループに追加するには?
回答
usermod
コマンドを使用して、特定のユーザーを sudo
グループに追加できます。
コマンド例
sudo usermod -aG sudo user1
追加後、ユーザー user1
は sudo コマンドを使用できるようになります。
7.7 ユーザーのホームディレクトリを変更するには?
回答
usermod -d
を使用すると、ユーザーのホームディレクトリを変更できます。
コマンド例
sudo usermod -d /new/home/path -m user1
出力例
user1 home directory has been moved to /new/home/path
このコマンドにより、user1
のホームディレクトリが新しいパスに変更されます。
7.8 ユーザーを完全に削除し、そのデータも消去するには?
回答
deluser
または userdel
を使用して、ユーザーとそのホームディレクトリを削除できます。
コマンド例
sudo deluser --remove-home user1
または、
sudo userdel -r user1
このコマンドを実行すると、ユーザー user1
とそのホームディレクトリ /home/user1
が完全に削除されます。
7.9 現在ログインしているユーザーの詳細なアクティビティを確認するには?
回答
w
コマンドを使用すると、ログインユーザーの詳細なアクティビティ を確認できます。
コマンド例
w
出力例
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshd
- ログインユーザー
- リモート接続IP
- 現在のプロセス(WHAT欄)
- システムの負荷状況(load average)
これにより、現在どのユーザーがどんな作業をしているかを確認できます。