一部のファイル、例えばカーネルに関連するファイルを消そうとすると
「Operation not permitted」といわれて削除できなかったり変更が効かない。
/tmp のようなディレクトリにはスティッキービットが立っていて
これも削除できなかったりする。これはスティッキービットを外せば
簡単に削除することが可能。ただしrootは関係ないようだ。
ディレクトリごと逝こうとしても無駄無駄無駄ぁ
(別に不思議でもなんでもないという突っ込みは置いておく)
まぁ、何でこんなことになったかというとJAIL環境の構築失敗して
消して最初からやり直そうと思ったら消せなかったというオチなんですが……。
「Operation not permitted」といわれて削除できなかったり変更が効かない。
/tmp のようなディレクトリにはスティッキービットが立っていて
これも削除できなかったりする。これはスティッキービットを外せば
簡単に削除することが可能。ただしrootは関係ないようだ。
# ls -ld /tmp今回はライブラリを削除しようと思ってrmを実行したら消せなかった。
drwxrwxrwt 8 root wheel 512 Oct 6 03:01 /tmp
# rm 01/lib/*なぬー。
override r--r--r-- root/wheel schg for 01/lib/libc.so.7? y
rm: 01/lib/libc.so.7: Operation not permitted
override r--r--r-- root/wheel schg for 01/lib/libcrypt.so.4? y
rm: 01/lib/libcrypt.so.4: Operation not permitted
override r--r--r-- root/wheel schg for 01/lib/libthr.so.3? y
rm: 01/lib/libthr.so.3: Operation not permitted
ディレクトリごと逝こうとしても無駄無駄無駄ぁ
# rm -rf ./01/libで、どういうわけかというと、ファイルフラグが「schg」になっているからみたいです。
rm: ./01/lib/libc.so.7: Operation not permitted
rm: ./01/lib/libcrypt.so.4: Operation not permitted
rm: ./01/lib/libthr.so.3: Operation not permitted
rm: ./01/lib: Directory not empty
# ll -o 01/libだからファイルフラグを外します。
total 1122
-r--r--r-- 1 root wheel schg 1026692 Oct 31 2008 libc.so.7
-r--r--r-- 1 root wheel schg 31928 Oct 31 2008 libcrypt.so.4
-r--r--r-- 1 root wheel schg 66928 Oct 31 2008 libthr.so.3
# chflags noschg 01/lib/*するとアラ不思議。こんな簡単に削除できました。
# ll -o 01/lib
total 1122
-r--r--r-- 1 root wheel - 1026692 Oct 31 2008 libc.so.7
-r--r--r-- 1 root wheel - 31928 Oct 31 2008 libcrypt.so.4
-r--r--r-- 1 root wheel - 66928 Oct 31 2008 libthr.so.3
# rm 01/lib/*
(別に不思議でもなんでもないという突っ込みは置いておく)
まぁ、何でこんなことになったかというとJAIL環境の構築失敗して
消して最初からやり直そうと思ったら消せなかったというオチなんですが……。


