宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「/tmp ディレクトリには誰でも書き込めるのに、他人のファイルは削除できない」
「複数ユーザーで共有するディレクトリを、誰でも書き込めるが自分のファイルだけ削除できる設定にしたい」

この動作を実現するのが スティッキービット(sticky bit)です。

この記事では、スティッキービットの仕組みと設定方法を解説します。
chmod での設定方法、ls -l での確認方法、実際の動作確認まで順番にまとめました。
【この記事でわかること】
・スティッキービットを設定すると、所有者以外はそのディレクトリ内のファイルを削除できない
・chmod +t ディレクトリ名 または chmod 1777 ディレクトリ名 で設定できる
・ls -l でパーミッションの末尾が t(または T)と表示される
・/tmp ディレクトリにはデフォルトでスティッキービットが設定されている

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

スティッキービットとは

スティッキービットはディレクトリに設定するパーミッションの特殊ビットです。
設定されたディレクトリでは、ファイルの削除は所有者のみが可能になります。
他のユーザーはそのディレクトリにファイルを書き込めますが、自分が所有していないファイルは削除できません。

/tmp ディレクトリがその典型例です。誰でも一時ファイルを置けますが、他人のファイルは消せません。

スティッキービットの確認

# /tmp ディレクトリを確認する [pakira@Dolphin ~]$ ls -ld /tmp drwxrwxrwt 3 root root 4096 Feb 4 10:30 /tmp/ # ↑パーミッションの最後が「t」= スティッキービットが設定されています

スティッキービットが設定されている場合、ls -l の実行権限部分(その他ユーザーの x 位置)が t になります。
t(小文字):実行権限あり+スティッキービットあり
T(大文字):実行権限なし+スティッキービットあり

スティッキービットを設定する

chmod +t で設定する

# スティッキービットを設定する [root@Dolphin ~]# chmod +t /shared/data # 確認する [root@Dolphin ~]# ls -ld /shared/data drwxrwxrwt 2 root root 4096 Apr 4 10:00 /shared/data/

chmod 1777 で設定する(数値指定)

# スティッキービットを数値で設定する(先頭の「1」がスティッキービット) [root@Dolphin ~]# chmod 1777 /shared/data # 確認する [root@Dolphin ~]# ls -ld /shared/data drwxrwxrwt 2 root root 4096 Apr 4 10:00 /shared/data/

スティッキービットの動作確認

# /tmp に nobody ユーザーのファイルがある状態で、pakira ユーザーが削除しようとする [pakira@Dolphin tmp]$ ls -l 合計 80 -rw-r--r-- 1 nobody nobody 90112 Feb 4 09:18 test.db [pakira@Dolphin tmp]$ rm test.db rm: リンク `test.db' を削除できません: 許可されていない操作です # ↑スティッキービットにより、他ユーザーのファイルは削除できません

スティッキービットを解除する

# スティッキービットを解除する [root@Dolphin ~]# chmod -t /shared/data # または数値で指定(スティッキービットなしの777) [root@Dolphin ~]# chmod 0777 /shared/data

本記事のまとめ

やりたいこと コマンド
スティッキービットを設定する chmod +t ディレクトリ名
スティッキービットを数値で設定する chmod 1777 ディレクトリ名
スティッキービットを解除する chmod -t ディレクトリ名
スティッキービットの確認 ls -ld ディレクトリ名(末尾が t かを確認)
スティッキービットは共有ディレクトリの安全な運用に欠かせない設定です。
/tmp の動作を頭に入れておくと、実際の使いどころがイメージしやすくなります。

スティッキービットを理解して、共有ディレクトリを安全に運用する

パーミッションの特殊ビットを使いこなせると、複数ユーザーが使う共有環境でのファイル保護が確実にできます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。