パーミッションと所有権の設定

ファイルとディレクトリの所有権

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その他のユーザーのパーミッション(読み取り、書き込み、実行)
5SELinuxの拡張属性(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/

コメント

タイトルとURLをコピーしました