このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】ファイルの所有者やグループの変更:chownコマンド

chownコマンドの概要

 「chown」コマンドは、ファイルやディレクトリの所有者およびグループを変更するために使用されます。これにより、特定のユーザーやグループがファイルに対して適切なアクセス権を持つように設定できます。システム管理やセキュリティの観点から重要なコマンドです。

【構文】
chown [オプション] ユーザー[:グループ] ファイルパス

主なオプションと説明

オプション説明
-R再帰的にディレクトリとその中の全ファイルを変更
主なオプションと説明

コマンドの使用例と解説

1.演習の準備

この演習で使用するファイルの作成を作成します。

・「date > example.txt」コマンドを実行し、「ls -l example.txt」コマンドで、このファイルの所有者とグループを確認します。

user01@ubuntu-vm:~$ date > example.txt
user01@ubuntu-vm:~$ ls -l example.txt
-rw-rw-r-- 1 user01 user01 43  6月 14 00:15 example.txt

-rw-rw-r-- 1 user01 user01 43 6月 14 00:15 example.txt

所有者とグループが、ログインしてファイルを作成した「user01」となっています。

・ディレクトリと作成したディレクトリ内に2つファイルを作成します。

以下のコマンドを実行します。

  • mkdir project」コマンド
  • date > project/example1.txt」コマンド
  • date > project/example2.txt」コマンド
user01@ubuntu-vm:~$ mkdir project
user01@ubuntu-vm:~$ date > project/example1.txt
user01@ubuntu-vm:~$ date > project/example2.txt

 作成したディレクトリ「project」とファイル「example1.txt」、「example2.txt」の所有者とグループを確認します。

次のコマンドを実行します。

  • 「ls -ld project」コマンド
  • 「ls -l project/example*」コマンド
user01@ubuntu-vm:~$ ls -ld project
drwxrwxr-x 2 user01 user01 4096  6月 14 01:24 project
user01@ubuntu-vm:~$ ls -l project/example*
-rw-rw-r-- 1 user01 user01 43  6月 14 01:29 project/example1.txt
-rw-rw-r-- 1 user01 user01 43  6月 14 01:29 project/example2.txt

所有者とグループが、ログインした「user01」となっています。

このLinux上に作成されているユーザーを確認します。

・「cat /etc/passwd」コマンドを実行します。

 「user01」、「suzuki」、「yamada」、「sato」、「tanaka」などのユーザーが作成されています。※当サイトの演習をここまで進めていると、これらのユーザーが作成されています。

user01@ubuntu-vm:~$ cat /etc/passwd
(省略)
user01:x:1000:1000:user01,,,:/home/user01:/bin/bash
(省略)
suzuki:x:1001:1001:,,,:/home/suzuki:/bin/bash
yamada:x:1002:1002::/home/yamada:/bin/sh
sato:x:1003:1003:sato yuko:/home/sato:/bin/sh
tanaka:x:2222:100:tanaka sumire:/home/tanaka:/bin/bash

このLinux上に作成されているグループを確認します。

・「cat /etc/group」コマンドを実行します。

「backup」、「operator」、「staff」、「users」などのグループが作成されています。※Ubuntu環境

user01@ubuntu-vm:~$ cat /etc/group
(省略)
backup:x:34:
operator:x:37:tanaka
(省略)
staff:x:50:yamada
(省略)
users:x:100:
(省略)

2.所有者の変更

・「sudo chown suzuki example.txt」コマンドを実行し、「ls -l example.txt」コマンドで、このファイルの所有者とグループを確認します。

このコマンドは、ファイル「example.txt」の所有者を「suzuki」に変更します。グループは変更されません。

# ファイル 'example.txt' の所有者を 'suzuki' に変更
user01@ubuntu-vm:~$ sudo chown suzuki example.txt
[sudo] user01 のパスワード: 
user01@ubuntu-vm:~$ ls -l example.txt 
-rw-rw-r-- 1 suzuki user01 43  6月 14 00:15 example.txt

-rw-rw-r-- 1 suzuki user01 43 6月 14 00:15 example.txt

所有者が「suzuki」になっていることが確認できます。

3.グループの変更

・「sudo chown :staff example.txt」コマンドを実行し、「ls -l example.txt」コマンドで、このファイルの所有者とグループを確認します。

このコマンドは、ファイル「example.txt」のグループを「staff」 に変更します。所有者は変更されません。

# ファイル 'example.txt' のグループを 'staff' に変更
user01@ubuntu-vm:~$ sudo chown :staff example.txt
user01@ubuntu-vm:~$ ls -l example.txt 
-rw-rw-r-- 1 suzuki staff 43  6月 14 00:15 example.txt

-rw-rw-r-- 1 suzuki staff 43 6月 14 00:15 example.txt

グループが「staff」になっていることが確認できます。

4.所有者とグループの同時変更

・「sudo chown yamada:operator example.txt」コマンドを実行し、「ls -l example.txt」コマンドで、このファイルの所有者とグループを確認します。

このコマンドは、ファイル「example.txt」の所有者を「alice」に、グループを「operator」に同時に変更します。

# ファイル 'example.txt' の所有者を 'yamada' に、グループを 'operator' に変更
user01@ubuntu-vm:~$ sudo chown yamada:operator example.txt
user01@ubuntu-vm:~$ ls -l example.txt 
-rw-rw-r-- 1 yamada operator 43  6月 14 00:15 example.txt

-rw-rw-r-- 1 yamada operator 43 6月 14 00:15 example.txt

所有者が「yamada」、グループが「operator」になっていることが確認できます。

5.再帰的な所有者とグループの変更

・「sudo chown -R sato:backup project」コマンドを実行します。

 このコマンドは、ディレクトリ project とその中に含まれるすべてのファイルおよびサブディレクトリの所有者を「sato」に、グループを「backup」に変更します。「-R」 オプションを使用することで、指定したディレクトリとそのすべての内容を再帰的に変更します。

# ディレクトリ 'project' とその中の全ファイル・ディレクトリの所有者を 'sato' に、グループを 'backup' に変更
user01@ubuntu-vm:~$ sudo chown -R sato:backup project
[sudo] user01 のパスワード: 

次のコマンドを実行します。

  • ls -ld project」コマンド
  • ls -l project/example*」コマンド
user01@ubuntu-vm:~$ ls -ld project
drwxrwxr-x 2 sato backup 4096  6月 14 01:24 project
user01@ubuntu-vm:~$ ls -l project/example*
-rw-rw-r-- 1 sato backup 43  6月 14 01:29 project/example1.txt
-rw-rw-r-- 1 sato backup 43  6月 14 01:29 project/example2.txt

所有者が「sato」、グループが「backup」になっていることが確認できます。

6.ファイルとディレクトリの削除

この演習で作成したファイルとディレクトリを削除します。

・「sudo rm -r example.txt project」コマンドを実行し、「ls」コマンドで削除されたかを確認します。

user01@ubuntu-vm:~$ sudo rm -r example.txt project
user01@ubuntu-vm:~$ ls
snap          テンプレート  ドキュメント  ピクチャ      公開
ダウンロード  デスクトップ  ビデオ        ミュージック

まとめ

 「chown」コマンドは、ファイルやディレクトリの所有者およびグループを管理するために不可欠なコマンドです。特に、「-R」オプションを使用することで、ディレクトリ全体に対して一括して変更を適用することができます。これにより、管理が容易になり、システムのセキュリティを維持しやすくなります。