【Linux】特殊なアクセス権
特殊なアクセス権の概要
Linuxファイルシステムは、ユーザーやグループによるファイルとディレクトリのアクセス制御を非常に細かく設定できるように設計されています。基本的なアクセス権限(読み取り、書き込み、実行)は多くのユーザーにとっておなじみですが、システム管理者や高度なユーザーが必要とするより洗練された制御を可能にする「特殊なアクセス権」が存在します。
特殊なアクセス権には、Set User ID(SUID)、Set Group ID(SGID)、およびスティッキービット(Sticky Bit)の3種類があります。これらは、特定の条件下でファイルやディレクトリのアクセス制御を強化し、セキュリティと運用の一貫性を保つために使用されます。
SUID (Set User ID)
- 概要: ファイルが実行されるときに、そのファイルの所有者の権限で実行されます。
- 適用対象: 実行可能ファイル
- 効果: 通常のユーザーがファイルの所有者と同じ権限を一時的に取得することができます。
- 表示: 権限表示に「s」が含まれます。
例:rwsr-xr-x
SUIDは、ファイルが実行される際に、そのファイルの所有者の権限で実行されるように設定するためのビットです。これにより、通常のユーザーが一時的に所有者の権限を持つことができるため、特定のシステムタスクを実行する際に便利です。典型的な例として、パスワード変更プログラム(passwd
)があります。これは、通常のユーザーが自分のパスワードを変更するために、root権限が一時的に必要とされるためです。
SGID (Set Group ID)
- 概要: ファイルが実行されるときに、そのファイルのグループの権限で実行されます。また、ディレクトリに設定すると、新しく作成されるファイルやディレクトリはその親ディレクトリのグループを継承します。
- 適用対象: 実行可能ファイルおよびディレクトリ
- 効果: グループ権限の一貫性を保つことができます。
- 表示: 対象ファイル(ディレクトリ)の「所有グループの実行アクセス権」の欄に「s」と表示されます。
ただし、このファイル(ディレクトリ)にグループの実行権がない場合、「グループの実行アクセス権」の欄には「S」(大文字)が表示されます。
例:rwxr-sr-x
SGIDは、ファイルやディレクトリがグループの権限で実行されるように設定するためのビットです。ファイルに設定された場合、そのファイルはグループの権限で実行されます。ディレクトリに設定された場合、新しく作成されたファイルやディレクトリは親ディレクトリのグループを継承します。これにより、プロジェクトごとのグループ作業を効率化し、アクセス権限の管理を簡素化できます。
スティッキービット (Sticky Bit)
- 概要: ディレクトリに設定すると、そのディレクトリ内のファイルやサブディレクトリは所有者またはrootユーザーのみが削除可能になります。
- 適用対象: ディレクトリ
- 効果: 共有ディレクトリ内のファイルを他のユーザーが削除できないようにします。
- 表示: 権限表示に「t」が含まれます。
例:rwxrwxrwt
スティッキービットは、ディレクトリ内のファイルが所有者またはrootユーザーのみによって削除できるようにするためのビットです。これは、共有ディレクトリ(例:/tmp)で特に有用です。他のユーザーが誤ってまたは意図的に他人のファイルを削除するのを防ぎます。
特殊なアクセス権の設定方法
- SUID:
chmod u+s filename
- SGID:
chmod g+s filename
- スティッキービット:
chmod +t directoryname
特殊なアクセス権の表示例
以下は、特殊なアクセス権の表示例です。
$ ls -l
-rwsr-xr-x 1 root root 12345 Jun 10 12:34 suidfile
-rwxr-sr-x 1 user group 6789 Jun 10 12:34 sgidfile
drwxrwxrwt 2 user group 4096 Jun 10 12:34 stickydir
まとめ
ここで、特殊なアクセス権を表にまとめます。
特殊アクセス権 | 概要 | 適用対象 | 効果 | 設定コマンド |
---|---|---|---|---|
SUID | ファイルが所有者の権限で実行される | 実行可能ファイル | 通常ユーザーが所有者権限を一時取得 | chmod u+s filename |
SGID | ファイルがグループの権限で実行される。ディレクトリ内の新規ファイルが親ディレクトリのグループを継承 | 実行可能ファイル、ディレクトリ | グループ権限の一貫性を保つ | chmod g+s filename |
スティッキービット | ディレクトリ内のファイルを所有者またはrootのみが削除可能 | ディレクトリ | 共有ディレクトリ内のファイルを保護 | chmod +t directoryname |
これらの特殊なアクセス権は、特定のセキュリティおよび管理タスクを簡単にするために非常に便利です。適切に使用することで、システムの安全性と一貫性を保つことができます。