
もっち
大手SIerに18年勤務。オンプレ・クラウド計200台規模の大規模インフラ(10システム)を統括する現役のサービスマネージャーです。
システム運用・インフラ技術、マインドセット、キャリア戦略など、現場で役立つ情報を若手エンジニアへ向けて発信中。


もっち
大手SIerに18年勤務。オンプレ・クラウド計200台規模の大規模インフラ(10システム)を統括する現役のサービスマネージャーです。
システム運用・インフラ技術、マインドセット、キャリア戦略など、現場で役立つ情報を若手エンジニアへ向けて発信中。
Linuxのパーミッションを学んでいると、「755」や「644」といった数字のほかに、たまに「rws」や「rwt」といった見慣れない表示に出会うことはありませんか?これこそが、Linuxの特殊権限と呼ばれる仕組みです。
「資格試験のために暗記したけれど、実務で触るのがちょっと怖い…」 そんな風に感じている若手エンジニアの方も少なくありません。
しかし、特殊権限は「正しく使えば非常に便利、間違えるとセキュリティホールになる」という、まさにインフラエンジニアの腕の見せ所でもあります。今日は、この3つの特殊権限を世界一わかりやすく、そして「現場のリアル」を交えて解説します。
この記事の想定読者
この記事を読むことでのメリット
そもそも、なぜ普通の権限(rwx)だけでは足りないのでしょうか。 その答えは、「一般ユーザーだけど、その時だけは管理者(root)の力を借りたい」というシチュエーションが実務で必ず発生するからです。
例えば、自分のパスワードを変更する passwd コマンド。パスワード情報は /etc/shadow というrootしか触れないファイルに保存されていますが、一般ユーザーが自分のパスワードを変えられるのは、この特殊権限のおかげなのです。
s になります(例:-rwsr-xr-x)。s になります(例:drwxrwsr-x)。t になります(例:drwxrwxrwt)。/tmp ディレクトリです。誰でもファイルを置けますが、他人のファイルを勝手に消すことはできません。「みんなのゴミ箱だけど、自分のゴミ以外は捨てられない」というルールを技術的に担保しているのがこのビットです。特殊権限を設定する際は、数値表現の先頭に「4(SUID)」「2(SGID)」「1(Sticky Bit)」を足します。
| 権限 | 数値設定 | コマンド例 |
| SUID | 4000 | chmod 4755 file |
| SGID | 2000 | chmod 2775 dir |
| Sticky Bit | 1000 | chmod 1777 dir |
サーバーのセキュリティ監査などで、「意図しないSUIDがついていないか」を確認する際は、以下のコマンドが便利です。
# SUIDがついているファイルを探す
find / -perm -4000 -type f 2>/dev/null実務で実際に起きた、PAM(Pluggable Authentication Modules)にまつわる事故を深掘りします。
chmod 777ある開発担当者が、PAMの設定ファイルをFTPでダウンロードしようとしました。権限不足で失敗した彼は、対象ファイルに対して chmod 777 を実行。「読み取れるようにしただけだ」という認識でした。
Linuxの認証を司るPAMやSSHといったサービスは、動作の前に設定ファイルの権限を厳格にチェックします。
その結果、ログインを試みてもPAMが「設定ファイルが危険です」とエラーを返し、全ユーザーが締め出されるという最悪の事態を招いたのです。
~/.ssh/authorized_keys(600でないとSSH不可)など、「権限が緩すぎると動かなくなる」設計は多々あります。777 に変えた後、元の状態(644だったのか、440だったのか)を正確に復元するのは困難です。不明な場合は rpm -V [パッケージ名] などで初期状態と比較する高度な復旧作業が必要になります。777 をつけることは、外部から悪意のあるコードを注入され、即座に実行される隙を与えることと同義です。権限のない設定ファイルを安全にローカルへ持ってくるには、「元のファイルには絶対に触らない」のが鉄則です。
sudo cp -p /etc/pam.d/config_file /tmp/work_copy(-p オプションで、所有者や権限などの属性を保持したままコピーします)sudo chown [自分のユーザー名]:[自分のユーザー名] /tmp/work_copy/tmp のファイルを削除します。「権限エラー = chmod 777」という思考停止は、今日で卒業しましょう。
Linuxサーバーを扱うということは、その背後にある厳格なセキュリティ設計を尊重することです。正しい知識を武器に、信頼されるエンジニアを目指しましょう。
SUIDやSGIDが正しく設定されていないことが原因で、アプリケーションがエラーを吐くケースは意外と多いものです。
表面上の挙動だけでは分かりにくい権限トラブルも、OSのログを適切に追うことで、パーミッションエラーの真実が見えてきます。権限設定とセットで覚えておきたいログ調査の基本テクニックもあわせて確認しておきましょう。

この記事が気に入ったら
フォローしてね!