Linuxにおけるパーミッション

パーミッションって何?

 パーミッションとは、Linuxシステムにおいてファイルやディレクトリに対するアクセス権を制御する仕組みです。これにより、どのユーザーがファイルやディレクトリにアクセスできるか、またどのような操作が許可されるかが制御されます。

パーミッションの概要

 パーミッションは各ファイルやディレクトリごとに所有者(User)、所有者の所属するグループ(Group)、その他のユーザー(Others)に対して読み取り(Read)、書き込み(Write)、実行(Execute)の権限が設定されています。これは3桁の数字で表現され、所有者、グループ、その他のユーザーの順になります。

  • 7: 読み取り、書き込み、実行の権限が許可されています。
  • 5: 読み取りと実行の権限が許可されています。
  • 4: 読み取りの権限が許可されています。
  • 0: 何も権限が許可されていません。

ファイルの所有者と所有グループとは

  • 所有者(User): ファイルやディレクトリを作成したユーザーを指します。所有者はパーミッションの変更やファイルの削除など、全ての操作に対して特権を持ちます。
  • 所有者の所属するグループ(Group): ファイルやディレクトリを作成したユーザーが所属しているグループを指します。このグループは所有者に付与されるグループ権限を決定します。

ファイルのアクセス権

ファイルやディレクトリには、以下の3つの主要なアクセス権があります。

  • 読み取り権限(Read): ファイルの中身を読み取る権限。ディレクトリの場合は中身の一覧を見る権限。
  • 書き込み権限(Write): ファイルに書き込む権限。ディレクトリの場合は新しいファイルを作成したり、ファイルを削除したりする権限。
  • 実行権限(Execute): ファイルを実行する権限。ディレクトリの場合はそのディレクトリに移動する権限。

パーミッションの管理

chmodコマンド

パーミッションを変更するために使用します。数値や記号を使って権限を設定します。

# chmod permissions filename
chownコマンド

ファイルやディレクトリの所有者を変更するために使用します。

# chown owner:group filename
chgrpコマンド

ファイルやディレクトリの所属するグループを変更するために使用します。

# chgrp group filename

 これらのコマンドを使用して、ファイルやディレクトリのパーミッションを適切に設定し、アクセス権を管理することが重要です。パーミッションの正確な設定は、セキュリティの向上とシステムの適切な機能の確保に寄与します。

特別なパーミッション

特別なパーミッションは通常のパーミッションに加えて、特殊な機能を提供します。

Set User ID(SUID)

 ファイルが実行される際、そのプロセスはファイルの所有者の特権で実行されます。通常は実行権限が付与された実行ファイルにこの特権が設定されます。

# chmod u+s filename
Set Group ID(SGID)

 ファイルが実行される際、そのプロセスはファイルの所属するグループの特権で実行されます。通常は実行権限が付与された実行ファイルやディレクトリにこの特権が設定されます。

# chmod g+s filename
Sticky Bit

ディレクトリに設定された場合、そのディレクトリ内のファイルは、所有者以外のユーザーが削除できません。

# chmod +t directory

パーミッションの設定と解説

以下は、具体的な例を通じてパーミッションの設定方法と解説です。

# chmod 740 myfile

このコマンドは、’myfile‘ に対して以下のパーミッションを設定します。

  • 所有者: 読み取り、書き込み (7)
  • グループ: 読み取りのみ (4)
  • その他: 何も権限がなし (0)

 このように設定されたパーミッションでは、所有者には読み取りと書き込みの権限があり、所属するグループには読み取りのみの権限が与えられ、その他のユーザーには何も権限がありません。

まとめ

 Linuxにおけるパーミッションは、セキュリティを確保し、権限を適切に管理するための不可欠な仕組みです。ファイルやディレクトリの権限を正しく設定することで、機密性や完全性を確保し、不正なアクセスや操作を防ぎます。パーミッションの理解と適切な管理は、Linuxシステムの安全性を向上させる重要なスキルとなります。