(最終更新日:2023年9月)
✔このような方へ向けて書かれた記事となります
「Linux上でユーザー一覧を確認する方法は何か?」
「Linuxでユーザーを管理するコマンドを知りたい」
「リアルなLinuxユーザー管理の実例に触れたい」
✔当記事を通じてお伝えすること
- Linuxでのユーザー一覧表示の基本
- ユーザー管理に役立つ様々なコマンド
- Linux上でユーザー管理する実践例
当記事では、Linuxでのユーザー一覧表示の基本から、さまざまな管理コマンドを用いた応用まで、具体的な例を交えて詳細に解説しています。
ぜひ最後までお読みいただき、Linuxでのユーザー管理をマスターしましょう。
Linuxでユーザー一覧を確認する方法。
— ITC (@ITC202012) September 9, 2023
cat /etc/passwd
ユーザー名: パスワード(x):UID:GID、などの情報が表示されます。
特定のユーザーだけ知りたいなら、idコマンド。
id username
詳しくはこちら。https://t.co/p6g6Byw9nr
Linuxユーザーの概要
まず最初に、「Linuxユーザー」について詳しく見ていきましょう。
基本を理解のうえ、次へ進みます。
- Linuxユーザーとは
- ユーザーIDとユーザー名
- システムユーザーと通常ユーザー
- /etc/passwdファイルについて
Linuxユーザーとは
Linuxユーザーとは、Linuxシステムにログインするためのアカウントを持つ人物またはプロセスのこと。
ユーザーは自分専用のホームディレクトリや設定ファイルを持ち、システムリソースへのアクセス権を持っています。
ユーザーIDとユーザー名
ユーザーは、ユーザー名とユーザーIDの2つの属性で識別されます。
それぞれの役割は以下のとおり。
- ユーザー名:通常は人間が読みやすい形式
- ユーザーID:UIDとも呼ばれ、システム内部で識別するための数値
ユーザー名は一般的にログイン時に使用され、ユーザーIDはシステム内部での操作に使われます。
システムユーザーと通常ユーザー
Linuxユーザーは、主に以下の2種類に分けられます。
- システムユーザー:システム操作やデーモンの実行に使用
- 通常ユーザー:システムにログインし、作業のために使用
/etc/passwdファイルについて
/etc/passwdファイルは、システム上のすべてのユーザーの情報を保存する重要なファイルです。
各行は一つのユーザーを表し、以下の情報が保存されています。
- ユーザー名
- パスワード
- ユーザーID
- グループID
- ユーザーのフルネーム
- ホームディレクトリ
- ログインシェル
通常は「x」が記載されており、実際のパスワードは/etc/shadowに保存されます。
ユーザー一覧の確認方法
Linuxシステム上のユーザー一覧をどのように確認するかを学びましょう。
- cat /etc/passwdコマンドで一覧表示
- getent passwdコマンドで一覧表示
- 指定ユーザーの確認方法
- ユーザー情報だけを表示する方法
cat /etc/passwdコマンドで一覧表示
Linuxシステム上の全ユーザー一覧を表示する簡単な方法は、
以下のコマンドを実行すること。
cat /etc/passwd
システム上の全てのユーザー情報が一覧表示されます。
getent passwdコマンドで一覧表示
システム上の全ユーザー一覧を表示するために使えます。
getent passwd
このコマンドは、システムのパスワードデータベースを検索し、すべてのユーザーアカウント情報を表示します。
指定ユーザーの確認方法
特定のユーザー情報だけを表示するには、id
コマンドを使用しましょう。
id username
指定したユーザー(この場合は「username」)のユーザーID、グループID、所属する追加のグループ情報が表示されます。
ユーザー情報だけを表示する方法
特定のユーザーの詳細な情報を表示するには、finger
コマンドを使用します。
finger username
そのユーザーのホームディレクトリやシェル、最後のログイン時間、などの情報が表示されます。
このコマンドはデフォルトではインストールされていないことが多いので、インストールする場合は以下のとおりです。
sudo apt install finger
ユーザー管理の基本操作
ここでは、Linux上でユーザーを管理する基本的な操作をお伝えします。
- ユーザーの追加方法(useradd)
- ユーザーの削除方法(userdel)
- ユーザー情報の変更方法(usermod)
ユーザーの追加方法(useradd)
新しいユーザーを追加するためには、useraddコマンドを使用します。
例えば、新しいユーザー「newuser」を追加したい場合はこちら。
sudo useradd newuser
ただしこれだけではパスワードが設定されていません。
次に以下のコマンドで、指示に従ってパスワードを設定してください。
sudo passwd newuser
ユーザーの削除方法(userdel)
ユーザーを削除するには、userdel
コマンドを使用します。
例えば、「olduser」という名前のユーザーを削除するには、以下となります。
sudo userdel olduser
このときに、ユーザーのホームディレクトリを削除するためには、以下を実行しましょう。
sudo userdel -r olduser
ユーザー情報の変更方法(usermod)
既存のユーザー情報を変更するには、usermod
コマンドを使用します。
このコマンドは非常に強力で、以下のようなさまざまなユーザー情報の変更が可能です。
- ユーザー名の変更
- ホームディレクトリの変更
- デフォルトのシェルの変更
例えば、ユーザー「myuser」のログインシェルをbashからzshに変更するには、以下のコマンドです。
sudo usermod -s /bin/zsh myuser
現在ログイン中のユーザー確認:whoコマンド
現在システムにログインしているユーザーの一覧を表示するには、who
コマンドを使用します。
これを実行すると、以下の情報が表示されます。
- ユーザー名
- 端末名
- ログイン時間
- リモートホスト
複数のユーザーが同時にシステムにアクセスしている場合や、遠隔操作している場合には、このコマンドは非常に役立ちます。
例えば、以下のように表示されます。
user1 pts/0 2023-06-22 07:22 (:0.0)
user2 pts/1 2023-06-22 08:30 (:0.0)
user1
とuser2
というユーザーがそれぞれ異なるターミナル(pts/0
とpts/1
)からログインし、そのログイン時間とリモートホストの情報を示しています。
グループ管理
こちらでは、Linuxシステムでのグループ管理について説明します。
- グループとは
- プライマリグループとセカンダリグループ
- グループの管理方法
グループとは
Linuxでは、一人以上のユーザーをまとめる単位としてグループが使用されます。
グループを利用することで、特定のユーザーグループに対してファイルアクセス権限を一括で設定可能です。
システムのセキュリティ管理が容易になります。
グループ情報は/etc/group
ファイルに保存され、各行がひとつのグループを表します。
各行は次の形式で記述されます。
group_name:password:GID:user_list
ここで表しているのは以下のとおり。
group_name
:グループ名password
:パスワード(通常は使用されず、x
が入ることが多い)GID
:グループIDuser_list
:そのグループに属するユーザーのリスト(カンマ区切り)
プライマリグループとセカンダリグループ
Linuxのユーザーは、必ずひとつのプライマリグループに所属し、必要に応じて複数のセカンダリグループにも所属できます。
- プライマリグループ:ユーザー作成時に自動的に設定
- セカンダリグループ:追加の権限を与えるために後からユーザーを追加
例えばstaffグループがアクセスできるディレクトリに、staffに所属しているユーザーは全員アクセスが可能です。
そのユーザーはプライマリグループだけでなく、グループのリソースにもアクセスできるようになります。
グループの管理方法
Linuxでは、以下のコマンドを使ってグループの管理をおこないます。
groupadd
:新しいグループを作成します。groupdel
:既存のグループを削除します。groupmod
:既存のグループの情報を変更します。
たとえば、新しいグループproject
を作成するには、以下のようにgroupadd
コマンドを使用します。
sudo groupadd project
そして、ユーザーuser1
をproject
グループに追加するには、usermod
コマンドの-aG
オプションを使用します。-a
は追加の意味で、-G
はセカンダリグループを指定するオプションです。
sudo usermod -aG project user1
ユーザーの権限管理
Linuxのシステム管理の重要な部分として、ユーザーの権限管理について解説します。
- Linuxのファイルアクセス権限
- 権限の変更方法(chmod)
- オーナーとグループの変更方法(chown, chgrp)
Linuxのファイルアクセス権限
Linuxでは、すべてのファイルとディレクトリには、それぞれ特定のユーザー(オーナー)、グループ、その他のユーザーに対するアクセス権限が設定されています。
これらの権限は以下の3つのタイプがあります。
- 読み取り権限(r)
ファイルの内容を読むことができ、ディレクトリ内のファイル名を一覧表示できます。 - 書き込み権限(w)
ファイルの内容を変更したり、ファイルを削除したりできます。
ディレクトリに対しては、ディレクトリ内のファイルを作成したり、削除したりが可能です。 - 実行権限(x)
ファイルをプログラムとして実行できます。
ディレクトリに対しては、ディレクトリ内のファイル名を指定してファイルを開いたり、プログラムを実行したりが可能です。
これらの権限はls -l
コマンドを用いることで確認できます。
権限の変更方法(chmod)
ファイルやディレクトリのアクセス権限を変更するには、chmod
コマンドを使用します。
chmod
コマンドには、2つの使い方があります。
- 絶対モード
- 相対モード
絶対モード
アクセス権限を数値で指定します。
- 読み取り:2
- 書き込み:1
- 実行権限:5
それらを合計した値で権限を指定します。
たとえば、オーナーに全ての権限(読み取り、書き込み、実行 = 4+2+1=7)を与え、グループとそのほかのユーザーに読み取りと実行権限(4+1=5)を与えるには、以下のようにコマンドを実行します。
chmod 755 filename
相対モード
現在の権限を基にして変更を加えます。
u
(ユーザー)g
(グループ)o
(その他のユーザー)a
(すべてのユーザー)
特定のユーザーグループの権限を指定します。
加えて、以下の記号を用いて具体的な操作を指定します。
- +(権限の追加)
- -(権限の削除)
- =(権限の設定)
例えば、グループに対する書き込み権限を追加するには、以下のようにコマンドを実行します。
chmod g+w filename
オーナーとグループの変更方法(chown, chgrp)
ファイルやディレクトリのオーナーやグループを変更するためには、chown
コマンドとchgrp
コマンドを用います。
chown
コマンドは、ファイルやディレクトリのオーナーを変更するもので、以下のように使用します。
chown newowner filename
また、オーナーとグループを一度に変更することも可能です。
chown newowner:newgroup filename
一方、chgrp
コマンドは、ファイルやディレクトリのグループを変更するためのもので、以下のように使用します。
chgrp newgroup filename
まとめ
Linuxシステムのユーザーと権限管理は、システムの安全性を確保する上で非常に重要です。
この記事では、ユーザーの一覧表示、追加、削除、変更方法、ログイン中のユーザーの確認方法、グループ管理、ファイルやディレクトリのアクセス権限とその変更方法、オーナーとグループの変更方法について説明しました。
これらの知識を使って、適切にユーザーと権限管理を行い、Linuxシステムの安全を保つことができます。