エントリー

※注意:このエントリーは、旧日記「みおだいあり~」からデータを移管したものです。

[FreeBSD] セキュリティのおはなし (1)

BSD系のUnix系OS(FreeBSD や Mac OS X など)には、パーミッションに関係なく、スーパユーザ(root)であっても消せないディレクトリ・ファイルを設定することができます。

デフォルトで、/var/empty/ ディレクトリは消すことが出来なくなっています。

YURI /# ll /var | grep empty
dr-xr-xr-x   2 root    wheel        512  2 25  2008 empty

ls -la」をとってみたところ、見た目は、「0555 (r-xr-xr-x)」のディレクトリです。

ためしに、root権限で「rmdir」してみます。

YURI /# rmdir -v /var/empty/
rmdir: /var/empty/: Operation not permitted

また、root権限で「rm -f」コマンドも試してみます。

YURI /# rm -Rfv /var/empty/
rm: /var/empty/: Operation not permitted

root権限であろうと、『許可がありません(消せません)』と、怒られました。

 

実は、FreeBSDには、「パーミッション」とは別に、「ファイルフラグ」という仕組みがあります。

設定されているファイルフラグは、「ls -la」では見ることができません。設定されているファイルフラグを調べる為には、「ls -lo」を使います。

YURI /# ls -lo | grep empty
dr-xr-xr-x   2 root    wheel     schg    512  2 25  2008 empty

/var/empty/ ディレクトリには、「schg」フラグが設定されているので、rootユーザであっても変更や削除をすることができません。

ファイルフラグ一覧

FreeBSDで定義されている「ファイルフラグ」のキーワードは、以下とおりです。

8進数キーワード設定に必要な権限フラグの意味
  arch root archivedフラグ
&O10 opaque 所有者またはroot opaqueフラグ
&O1 nodump 所有者またはroot nodump(dump禁止)フラグ
  sappnd root system append-only
(システムレベルでの追加専用)フラグ
  schg root system immutable
(システムレベルでの変更不可)フラグ
  sunlnk root system undeletable
(システムレベルでの削除不可)フラグ
&O4 uappnd 所有者またはroot user append-only
(ユーザレベルでの追加専用)フラグ
&O2 uchg 所有者またはroot user immutable
(ユーザレベルでの変更不可)フラグ
&O20 uunlnk 所有者またはroot user undeletable
(ユーザレベルでの削除不可)フラグ

 

ファイルフラグの設置

たとえば、/path/to/file というファイルを変更不可に設定するには、次のようにします。

YURI /# chflags uchg /path/to/file

キーワードを使わずに、次のように8進数を使っても構いません。

YURI /# chflags 2 /path/to/file
ファイルフラグの解除

そして、設定した変更不可フラグを削除するには、次のように、キーワードの前に「no」を付けて chflags します。

YURI /# chflags nouchg /path/to/file

8進数を使ってフラグを削除するときには、「&O0」を指定します。全てのファイルフラグがクリアされます。

YURI /# chflags 0 /path/to/file

 

なお、このファイルフラグですが、カーネルのセキュアレベルが「1」以上だと、root権限であっても、ファイルフラグの削除すら出来なくなってしまいますので、注意をば(特に、FreeBSDやMacOSXをデスクトップ用途で使用している場合)。

ページ移動

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前 *
URL
コメント *
閲覧制限 *
【スパム対策】 2 × 2 × 2 = ? (半角数字で)

ユーティリティ

user profile

calendar

042024/0506
S M T W T F S
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

tag cloud