このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:所有者と所有グループ

所有者と所有グループ
Linuxはマルチユーザー対応のオペレーティングシステムであり、複数のユーザーが同時に利用できるよう設計されています。そのため、ファイルやディレクトリには必ず「所有者」と「所有グループ」が設定されており、これらはアクセス制御の基礎を担っています。所有者はファイルを作成したユーザーが自動的に設定され、所有グループにはそのユーザーのプライマリグループが割り当てられます。これにより、ユーザー単位およびグループ単位でアクセス権を柔軟に管理できます。
ここでは、所有者と所有グループの概念、確認方法、変更方法について詳しく解説し、実際のコマンド使用例とともに理解を深めていきます。

1.所有者と所有グループの基本
1.1. 所有者と所有グループとは
Linuxでは、すべてのファイルやディレクトリは特定の「所有者」と「所有グループ」に属します。
| 項目 | 説明 |
|---|---|
| 所有者 | 通常はファイルを作成したユーザー。ファイルの管理権限を持つ。 |
| 所有グループ | 所有者が属するプライマリグループ。グループメンバーにも一定の権限が与えられる。 |
例として、カレントディレクトリの内容を ls -l で確認すると以下のように表示されます。
[user@rocky9 ~]$ ls -l file1.txt
-rw-r--r--. 1 user user 55 8月 24 15:21 file1.txtこの出力では、file1.txt の所有者は user、所有グループは user であることが分かります。
1.2. 所有者と所有グループの役割
所有者と所有グループの情報は、アクセス権(読み取り・書き込み・実行)と組み合わせて利用されます。
| 区分 | 説明 |
|---|---|
| 所有者権限 | ファイルの作成者に与えられる権限。 |
| グループ権限 | 所有グループに属するメンバーが利用できる権限。 |
| その他のユーザー権限 | 所有者・所有グループ以外のユーザーに適用される権限。 |
このように、所有者と所有グループを正しく設定することで、セキュリティと利便性を両立させることができます。
2.所有者と所有グループの管理
2.1. 所有者の変更(chown コマンド)
所有者を変更するには rootユーザー で chown コマンドを使用します。
書式
chown [オプション] 所有者名 ファイル名主なオプション
| オプション | 説明 |
|---|---|
-R | ディレクトリ配下を再帰的に変更 |
【例1】file1.txt の所有者を tanaka に変更する場合
[user@rocky9 ~]$ sudo chown tanaka file1.txt
[sudo] user のパスワード:
[user@rocky9 ~]$ ls -l file1.txt
-rw-r--r--. 1 tanaka user 55 8月 24 15:21 file1.txt2.2. 所有グループの変更(chgrp コマンド)
所有グループを変更するには chgrp コマンドを使います。一般ユーザーでも、自分が所属するグループであれば変更可能です。ただし、対象ファイルやディレクトリの所有者が自身であり、かつ自身の所属グループへの変更に限ります。
書式
chgrp [オプション] グループ名 ファイル名主なオプション
| オプション | 説明 |
|---|---|
-R | ディレクトリ配下を再帰的に変更 |
【例2】file.txt の所有グループを developers に変更する場合
[user@rocky9 ~]$ su - tanaka
パスワード:
[tanaka@rocky9 ~]$ touch file.txt
[tanaka@rocky9 ~]$ ls -l file.txt
-rw-r--r--. 1 tanaka tanaka 0 8月 30 22:27 file.txt
[tanaka@rocky9 ~]$ chgrp developers file.txt
[tanaka@rocky9 ~]$ ls -l file.txt
-rw-r--r--. 1 tanaka developers 0 8月 30 22:27 file.txt
[tanaka@rocky9 ~]$ exit
ログアウト
[user@rocky9 ~]$補足
touchは、空のファイルを新規作成したり、ファイルのタイムスタンプを更新したりするためのコマンド。
2.3. 所有者と所有グループを同時に変更
chown コマンドを使えば、所有者と所有グループを同時に変更できます。
書式
chown 所有者名:グループ名 ファイル名【例3】file2.txt の所有者を tanaka、所有グループを developers に変更する場合
[user@rocky9 ~]$ touch file2.txt
[user@rocky9 ~]$ ls -l file2.txt
-rw-r--r--. 1 user user 0 8月 30 22:32 file2.txt
[user@rocky9 ~]$ sudo chown tanaka:developers file2.txt
[sudo] user のパスワード:3.ディレクトリでの再帰的変更
所有者や所有グループをディレクトリ以下すべてのファイルに適用する場合は -R オプションを利用します。
【例4】images_backup ディレクトリ以下をすべて tanaka:developers に変更する場合
[user@rocky9 ~]$ sudo chown -R tanaka:developers images_backup
[sudo] user のパスワード:
[user@rocky9 ~]$ ls -ld images_backup
drwxr-xr-x. 2 tanaka developers 24 8月 29 22:42 images_backupまとめ
- Linuxではすべてのファイル・ディレクトリに 所有者 と 所有グループ が設定されている。
- 所有者は通常ファイルを作成したユーザー、所有グループはそのユーザーのプライマリグループ。
- 所有者変更には
chown、所有グループ変更にはchgrpを使用する。 - 所有者とグループを同時に変更する場合は
chown ユーザー:グループを利用できる。 -Rオプションを使うことでディレクトリ配下を再帰的に変更可能。
これらの操作を正しく理解し使い分けることで、Linuxのマルチユーザー環境において柔軟で安全なアクセス制御を行うことができます。
