Ubuntuでユーザー一覧を確認する方法|ログイン・管理・削除まで完全ガイド

目次

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

各行のフィールドは「:(コロン)」で区切られており、次の情報を含んでいます:

  1. ユーザー名
  2. パスワード(現在はxで非表示)
  3. ユーザーID(UID)
  4. グループID(GID)
  5. ユーザー情報(コメント)
  6. ホームディレクトリ
  7. デフォルトのシェル

このファイルにはシステムユーザーも含まれているため、通常のログイン可能なユーザーのみを抽出するには、次の方法を使用します。

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

これは user1sudo グループにも所属していることを示します。

年収訴求

3. 現在ログイン中のユーザーを確認する方法

Ubuntuでは、システムに現在ログインしているユーザーを確認する方法がいくつかあります。特定のコマンドを使用することで、現在セッションを開いているユーザーや詳細なログイン情報を取得することができます。

3.1 who コマンドを使用してログインユーザーを確認

who コマンドは、現在ログインしているすべてのユーザーを一覧表示します。

コマンド例

who

出力例

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

各フィールドの説明

  1. ユーザー名(ログインしているユーザー)
  2. 端末名(物理コンソール tty1 やリモート接続 pts/0
  3. ログイン時刻

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やグループ、ログインシェルなどを確認することで、適切な権限設定や管理が可能になります。
ここでは、idfingerchage などのコマンドを使った詳細情報の確認方法を解説します。

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では、システム管理者が適切にユーザーを管理することが重要です。新しいユーザーの追加や削除、既存ユーザーの情報編集を行うことで、システムの安全性と運用効率を向上させることができます。本セクションでは、adduserdeluserusermod などのコマンドを使用したユーザー管理方法を解説します。

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 コマンド(推奨)

deluseradduser の削除版で、シンプルにユーザーを削除できます。

コマンド例
sudo deluser newuser
ホームディレクトリも削除する場合
sudo deluser --remove-home newuser

このコマンドを実行すると、ユーザーのホームディレクトリ(/home/newuser)も削除されます。

5.2.2 userdel コマンド(上級者向け)

userdel コマンドを使用すると、より細かい制御が可能です。

コマンド例
sudo userdel newuser
ホームディレクトリごと削除
sudo userdel -r newuser

userdeldeluser よりも直接的な方法ですが、使用時に注意が必要です。

5.3 ユーザーの編集

既存のユーザー情報を変更する場合、usermod コマンドを使用します。

5.3.1 ユーザー名の変更

コマンド例
sudo usermod -l newname oldname

このコマンドを実行すると、oldnamenewname に変更されます。

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 whousers コマンドの違いは何ですか?

回答

コマンド説明
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)

これにより、現在どのユーザーがどんな作業をしているかを確認できます。