スティッキービット

スティッキービットとは

 スティッキービット(Sticky Bit)は、主にディレクトリに適用される特殊なアクセス権です。このビットが設定されたディレクトリでは、ディレクトリ内のファイルやサブディレクトリを削除または名前変更できるのは、以下の条件を満たすユーザーに限られます。

  • ファイルまたはディレクトリの所有者
  • スーパーユーザー(root)

 この機能は、特に共有ディレクトリ(例:/tmp)で役立ちます。他のユーザーが誤って他人のファイルを削除するのを防ぎます。

/tmpディレクトリアクセス権

 「/tmp」ディレクトリは一時ファイルを保存するために使用されます。このディレクトリは、全てのユーザーが書き込み可能ですが、スティッキービットが設定されているため、ユーザーは自分のファイルのみを削除できます。

$ ls -ld /tmp
drwxrwxrwt 10 root root 4096 Jun 12 12:00 /tmp

drwxrwxrwt 10 root root 4096 Jun 12 12:00 /tmp

  • t:スティッキービットが設定されていることを示します。

スティッキービットの設定方法

数値モードでは、1xxx の形式でスティッキービットを設定します。

ファイル/ディレクトリ数値モードでの設定記号モードでの設定
スティッキービット設定chmod 1777 directorychmod +t directory
スティッキービット解除chmod 0777 directorychmod -t directory
スティッキービットの設定方法

特殊なアクセス権の設定例

特殊なアクセス権数値モードでの設定記号モードでの設定
SUIDchmod 4755 filenamechmod u+s filename
SGIDchmod 2755 filenamechmod g+s filename
スティッキービットchmod 1777 directorychmod +t directory
SUIDとSGIDの設定chmod 6755 filenamechmod u+s,g+s filename
SGIDとスティッキービットの設定chmod 2777 directorychmod g+s,+t directory
SUID、SGID、スティッキービットの設定chmod 7777 filenamechmod u+s,g+s,+t filename
特殊なアクセス権の設定例

具体的な特殊なアクセス権の設定例

以下の設定を使用することで、システムのセキュリティとアクセス制御をより細かく管理できます。

1.ディレクトリにスティッキービットを設定する
chmod 1777 /example_dir
chmod +t /example_dir
2.ファイルにSUIDとSGIDを設定する
chmod 6755 /example_file
chmod u+s,g+s /example_file
3.ディレクトリにSGIDとスティッキービットを設定する
chmod 2777 /example_dir
chmod g+s,+t /example_dir