【Linux初心者向け】スティッキービットとは?と設定方法

  • このエントリーをはてなブックマークに追加
  • Pocket
スティッキービット

「スティッキービット」とはUnixLikeSystem、Linuxなどで利用できる特殊なパーミッションの一つである。

ディレクトリに適応することにより効能を発揮する。

スティッキービットとは?

スティッキービットが設定されたディレクトリは、すべてのユーザがファイルおよびディレクトリを作成書き込みを行えるようになる。

しかし、作成したファイルやディレクトリを削除出来るのは所有者だけとなるというパーミッションだ。

例外としてrootでの削除はできる。

SUIDやSGIDと比較すると、特に極端な特権的動作ではないが、適応されるディレクトリは「/tmp」など、基本的に誰でも書きこめるようになっている点に注意してほしい。

パーミッションのマークは「t」であり、その他のユーザのパーミッションに適応される。

実際にみてみよう

$ ls -ld /tmp

結果をみてみると、その他のユーザのパーミッション情報のフラグに「t」という文字がみえる。これがスティッキービットとなる。

試しにパーミッションが777の状態のファイルを作成して他のユーザから削除できるかどうかを確かめてみよう。

実験用ユーザの作成

# useradd testuser

一応のパスワードを設定

# passwd testuser

「testuser」へ変身

# su testuser

「testuser」となったためプロンプトは$になる。

$ cd /tmp

ファイル作成

$ touch testfile

模擬ファイルのパーミッションを設定、誰でも削除できるように777を指定

$ chmod 777 testfile

「testuser」から戻る

$ exit

rootから離脱

# exit

ファイルを消そうとしてみる。

$ rm /tmp/testfile

以下のようなエラーが表示されるはずだ。

ファイルが削除できないことが確認できた。

一応、片付けも載せておく。

$ su -

# cd /tmp/

ファイルを削除

# rm testfile

実験用ユーザを削除

# userdel -r testuser

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

スティッキービットを設定する機会は少ないかもしれないが、自分でもスティッキービットは設定することが出来る。

$ chmod 1777 <ディレクトリ名>

とすると指定できる。通常のパーミッション数値に1000を足した値となる。

権限を剥奪したい場合は通常通り

$ chmod 777 <ディレクトリ名>

とすればよいが、その状態は危険なので755あたりを指定した方が無難である。なぜならば誰でも無制限に書き込みや削除が行うことができるため、システムの秩序が失われるからである。

その他の指定方法

$ chmod o+u <ディレクトリ名>

としても同じ効果がえられる。

権限を剥奪する場合は

$ chmod o-u <ディレクトリ名>

となる。

スティッキービットの付いたファイルを検索したい場合

# find / -perm -1000

とういうコマンドを発行すると、システム全体のスティッキービットが付与されたファイルやディレクトリが列挙される。

まとめ

このページではスティッキービットについて設定方法や検索方法も含めてご紹介した。

設定することは多くはないだろうが、少なくともどういうパーミッションなのかは掴んでおきたい。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*