Linux権限とSUIDとは:所有者と実行権限を学ぶ基礎

Linuxでは、ファイルやディレクトリごとに、所有者、グループ、権限が設定されています。

これらは「誰がどの操作をできるか」を決める仕組みであり、ファイルが見えることと、内容を読めること、実行できることは別の条件です。

権限が表す範囲

読み取り権限書き込み権限実行権限は、通常のファイルとディレクトリで意味が異なります。

ディレクトリの場合、実行権限はその中をたどるために必要になります。

エラーの内容と所有者、権限の表示を対応させると、何が不足しているかを推測できます。

SUIDが変える実行時の権限

SUIDが付いた実行ファイルは、起動した利用者ではなく、ファイル所有者の実効権限で動作します。

特定の処理だけに高い権限が必要な場合に使われますが、入力、呼び出すプログラム、書き込み先の扱いを誤ると、権限の境界が崩れます。

そのため、SUIDは便利な一般設定ではなく、必要性を絞って検討する対象です。

最小権限で設計する

サービスごとに利用者を分け、必要なファイルと操作だけに権限を与えると、誤りが起きたときの影響範囲を小さくできます。

特権処理は入力を検証し、環境変数や検索パスなど、実行条件に影響する値を不用意に引き継がない設計が必要です。

監査では、権限が広すぎる場所と、特権で動く処理が何を行うかを別々に確認します。

対象を広げない

権限設定や特権プログラムの調査は、管理権限を持たない実在のサーバーで試す行為を正当化しません。

キノコハッカーの演習環境と、明示的に許可された端末だけを対象にしてください。

LinuxカテゴリLinuxセキュリティ入門最小権限の用語解説へ進めます。