ファイルとディレクトリの所有権
Linuxでは、ファイルとディレクトリには3つの主要な属性があります: 所有者(ユーザー)、グループ、その他(その他のユーザー)。これにより、アクセス制御が可能になります。
項目 | 説明 |
---|---|
所有者(User) | ファイルやディレクトリを作成したユーザー。 |
グループ(Group) | 所有者が所属するグループ。 |
その他(Others) | 所有者でもグループメンバーでもない全てのユーザー。 |
パーミッション(権限)
ファイルやディレクトリには3種類の権限が設定できます。それぞれの権限は、読み取り(r)、書き込み(w)、実行(x)です。パーミッションは、所有者、グループ、その他のユーザーに対して設定されます。
権限 | 説明 |
---|---|
読み取り(r) | ファイルの内容を読み取ることができる。 |
書き込み(w) | ファイルの内容を変更することができる。 |
実行(x) | ファイルを実行することができる(ディレクトリの場合は、そのディレクトリにアクセスして内容を表示することができる)。 |
パーミッションの表示
ls -l コマンドを使用して、ファイルやディレクトリの詳細な情報を表示できます。出力例とその説明は以下の通りです。
# テスト用ディレクトリの作成 mkdir ~/test-dir # テスト用のファイルの作成 touch ~/test-dir/test

作成したファイルの詳細を確認してみます。
ls -l test-dir/
以下はパーミッションの出力例です。
No. | 説明 |
---|---|
1 | ファイルタイプ(- は通常ファイル、d はディレクトリ) |
2 | 所有者のパーミッション(読み取り、書き込み、実行) |
3 | グループのパーミッション(読み取り、書き込み、実行) |
4 | その他のユーザーのパーミッション(読み取り、書き込み、実行) |
5 | SELinuxの拡張属性(SELinux context) |

パーミッションの変更
ファイルの所有者と所有グループ
ファイルの所有者と所有グループは以下のように表示されます。
今回の例では以下の通りです。
- 所有者:testuser
- 所有グループ:testuser

所有者の変更
パーミッションのテスト
テスト用ユーザー作成
sudo useradd -g test-group sato

/home/satoディレクトリの権限を確認。グループ、その他のユーザーに対しての権限がないためアクセスできない想定です。
ls -l /home/ | grep sato

想定通りアクセス許可がありませんでした。
cd /home/sato

/home/sato/ディレクトリのグループに読み取りと実行権限を付与
sudo chmod 750 /home/sato/

/home/sato/ディレクトリのグループに読み取りと実行権限が付与されたことを確認できます。
ls -l /home/ | grep sato

testuserをtest-groupの補助グループに追加します。
sudo usermod -aG test-group testuser

シェルがユーザーのグループメンバーシップを認識するためログインシェルを再起動
su - testuser

satoのホームディレクトリにアクセスできることが確認できました。
cd /home/sato/

コメント