10.1 ファイルの所有者と所有グループ
Linux Essentials Online Text | 2021/07/28

Linuxシステム上に存在する全てのファイルやディレクトリには、所有者と所有グループが設定されています。原則として所有者と所有グループは、ファイルやディレクトリの作成者です。所有者と所有グループはファイルの情報として重要な属性で、対象のファイルにアクセスできるユーザであるかどうかを判断します。

所有者の変更(chown)

ファイル所有者はchown コマンドでの変更できます。

書式:

chown ユーザ名 変更対象
chown ユーザ名:[グループ名] 変更対象
chown ユーザ名.[グループ名] 変更対象
chown .グループ名 変更対象

主なオプション:

-Rディレクトリを対象にします。ディレクトリの中のディレクトリやファイルを再帰的にたどって変更します

ファイルやディレクトリの所有者を変更することができます。

ユーザ名とグループ名の区切りに[:(コロン)]や[.(ピリオド)]を使って、所有者と所有グループを一度に設定することが可能です。所有グループは省略することが可能で、省略した場合も所有者が所属するプライマリグループが自動的に設定されます。ちなみに、ユーザ名を省略した場合は、グループ名のみが変更されます。

このコマンドは同じ結果をもたらす実行方法が複数あるので、どれとどれが同じ結果になるかを理解しておきましょう。

<実習: 所有者の変更>

$ su –
パスワード:
# touch /home/lpic-user2/test
# su lpic-user2
$ echo write_test > /home/lpic-user2/test
bash: /home/lpic-user2/test: 許可がありません
$ $ ls -l /home/lpic-user2/test
-rw-r--r--. 1 root root 0  7月 28 02:42 /home/lpic-user2/test

rootユーザで/home/lpic-user2/testファイルを作成しました。その後、一般ユーザに切り替えて書き込もうとしましたが、一般ユーザでは書き込み許可がなく、追記が出来ませんでした。

このファイルの所有権はrootなので、再度rootに戻って所有権を変更します。

$ exit
# chown lpic-user2 /home/lpic-user2/test
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 lpic-user2 root 0  7月 28 02:42 /home/lpic-user2/test
# su lpic-user2
$ echo write_test > /home/lpic-user2/test
$ cat /home/lpic-user2/test
write_test

ファイルの所有権を「lpic-user2」に変更したことにより、lpic-user2ユーザに切り替えて書き込みができるようになりました。

ファイルの所有者、所有グループの変更方法はいくつかあります。演習を通してパターンを覚えましょう。

# chown .LPI /home/lpic-user2/test
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 lpic-user2 LPI 11  7月 28 03:20 /home/lpic-user2/test
# chown root:root /home/lpic-user2/test
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 root root 11  7月 28 03:20 /home/lpic-user2/test
# chown lpic-user2: /home/lpic-user2/test
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 lpic-user2 LPI 11  7月 28 03:20 /home/lpic-user2/test
chown root. /home/lpic-user2/test
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 root root 11  7月 28 03:20 /home/lpic-user2/test

1行目:所有グループのみを「LPI」に変更しています。
4行目:所有者「root」、所有グループ「root」に変更しています。
7行目:所有者「lpic-user2」のみを指定していますが、「:」が付与されておりグループ名は省略されています。
この場合は、 lpic-user2 ユーザに設定されているプライマリグループ「LPI」が自動設定されます。
10行目:7行目と同じです。 所有者「root」のみが指定されています、「.」が付与されているためグループ名が省略されているだけです。 rootユーザのプライマリグループはrootですので、所有者、所有グループともにrootが設定されます。

所有グループの変更(chgrp)

ファイルの所有グループはchgrpコマンドで変更できます。

書式:

chgrp グループ名 変更対象

主なオプション:

-Rディレクトリを対象にします。ディレクトリの中のディレクトリやファイルを再帰的にたどって変更します

所有グループはchownコマンドを使って変更することができること、所有グループのみを変更するというシチュエーションが少ないため、あまり使用されません。しかし、所有グループのみを変更することができるため、確実に変更したい場合に使われます。

<実習: ファイル所有グループの変更>

# ls -l /home/lpic-user2/test
-rw-r--r--. 1 root root 11  7月 28 03:20 /home/lpic-user2/test
# chgrp Linux /home/lpic-user/test	
# ls -l /home/lpic-user2/test
-rw-r--r--. 1 lpic-user2 Linux 11  7月 28 03:20 /home/lpic-user2/test

変更するグループ名はシステムに存在している必要があります。lpic-user2を作成する際、プライマリグループとして「Linux」を指定したので、「lpic-user2」というグループは自動生成されておらず、存在しません。

PAGE TOP