【Linux】ユーザー一覧を表示する方法|ユーザー操作も一緒に解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年9月)

✔このような方へ向けて書かれた記事となります

「Linux上でユーザー一覧を確認する方法は何か?」
「Linuxでユーザーを管理するコマンドを知りたい」
「リアルなLinuxユーザー管理の実例に触れたい」

✔当記事を通じてお伝えすること

  • Linuxでのユーザー一覧表示の基本
  • ユーザー管理に役立つ様々なコマンド
  • Linux上でユーザー管理する実践例

当記事では、Linuxでのユーザー一覧表示の基本から、さまざまな管理コマンドを用いた応用まで、具体的な例を交えて詳細に解説しています。

ぜひ最後までお読みいただき、Linuxでのユーザー管理をマスターしましょう。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

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)

user1user2というユーザーがそれぞれ異なるターミナル(pts/0pts/1)からログインし、そのログイン時間とリモートホストの情報を示しています。

グループ管理

こちらでは、Linuxシステムでのグループ管理について説明します。

  • グループとは
  • プライマリグループとセカンダリグループ
  • グループの管理方法

グループとは

Linuxでは、一人以上のユーザーをまとめる単位としてグループが使用されます。

グループを利用することで、特定のユーザーグループに対してファイルアクセス権限を一括で設定可能です。

システムのセキュリティ管理が容易になります。

グループ情報は/etc/groupファイルに保存され、各行がひとつのグループを表します。

各行は次の形式で記述されます。

group_name:password:GID:user_list

ここで表しているのは以下のとおり。

  • group_name:グループ名
  • password:パスワード(通常は使用されず、xが入ることが多い)
  • GID:グループID
  • user_list:そのグループに属するユーザーのリスト(カンマ区切り)

プライマリグループとセカンダリグループ

Linuxのユーザーは、必ずひとつのプライマリグループに所属し、必要に応じて複数のセカンダリグループにも所属できます。

  • プライマリグループ:ユーザー作成時に自動的に設定
  • セカンダリグループ:追加の権限を与えるために後からユーザーを追加

例えばstaffグループがアクセスできるディレクトリに、staffに所属しているユーザーは全員アクセスが可能です。

そのユーザーはプライマリグループだけでなく、グループのリソースにもアクセスできるようになります。

グループの管理方法

Linuxでは、以下のコマンドを使ってグループの管理をおこないます。

  • groupadd:新しいグループを作成します。
  • groupdel:既存のグループを削除します。
  • groupmod:既存のグループの情報を変更します。

たとえば、新しいグループprojectを作成するには、以下のようにgroupaddコマンドを使用します。

sudo groupadd project

そして、ユーザーuser1projectグループに追加するには、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システムの安全を保つことができます。

タイトルとURLをコピーしました