このページで解説している内容は、以下の 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.txt

2.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のマルチユーザー環境において柔軟で安全なアクセス制御を行うことができます。