標準の読み取り、書き込み、実行権限に加えて、Linux は高度なアクセス制御のための特殊な権限を提供します。私たちが取り上げる最後の特殊権限がスティッキービットです。
スティッキービットとは?
スティッキービットは、ディレクトリに適用できる権限設定です。ディレクトリにスティッキービットが設定されている場合、そのディレクトリ内のファイルは、ファイルの所有者、ディレクトリの所有者、または root ユーザーのみが削除または名前変更できます。これは、複数のユーザーが互いに干渉することなく自分のファイルを作成および管理する必要がある共有ディレクトリで特に役立ちます。この概念は、Unix ファイル権限スティッキービット管理の重要な部分です。
実用的な例:/tmp ディレクトリ
Linux におけるスティッキービットの一般的な使用例は、一時ファイルのためのワールド書き込み可能な場所である/tmpディレクトリです。その権限を見てみましょう。
$ ls -ld /tmp
drwxrwxrwt 17 root root 4096 Dec 15 11:45 /tmp
権限文字列の末尾にあるt(rwxrwxrwt)に注目してください。このtはスティッキービットが設定されていることを示しています。これにより、どのユーザーでも/tmpにファイルを作成できますが、他のユーザーが作成したファイルを削除したり移動したりすることはできません。これにより、この共有スペースで他のユーザーの作業が妨害されるのを防ぎます。
スティッキービットの設定方法
スティッキービットは、シンボリックモードまたはオクタル(数値)モードのいずれかを使用してchmodコマンドで設定できます。
シンボリックモードを使用してスティッキービットを追加するには:
chmod +t my_shared_dir
オクタルモードを使用して権限を設定するには、標準の 3 桁の権限コードの前に1を付けます。スティッキービットの数値表現は1です。
# これはスティッキービット付きで権限をrwxr-xr-xに設定します
chmod 1755 my_shared_dir
マルチユーザー環境を管理し、共有ディレクトリを効果的に保護するためには、スティッキービットを理解することが不可欠です。