前回、アキレス腱であるファイルを消してしまい、とんでもない事態に陥りましたが、そのアキレス腱を打破すべく以下のコマンドを使ってみました。
コマンド : chflags
フラグの設定 | フラグの解除 | フラグの内容 | 必要な権限 |
---|---|---|---|
arch | noarch | archived | root |
opaque | noopaque | opaque | 所有者またはroot |
nodump | nonodump | nodump | 所有者またはroot |
sappnd | nosappnd | system append-only | root |
schg | noschg | system immutable | root |
sunlnk | nosunlnk | system undeletable | root |
uappnd | nouappnd | user append-only | 所有者またはroot |
uchg | nouchg | user immutable | 所有者またはroot |
uunlnk | nouunlnk | user undeletable | 所有者またはroot |
なんだかはよくわかりませんが、immutableは変更不可、undeletableは削除不可なのだそうです。
ということは…。
# chflags schg /libexec
# chflags schg /libexec/ld-elf.so.1
#
#
# mv ld-elf.so.1 ld-elf.so.1.1
mv: rename ld-elf.so.1 to ld-elf.so.1.1: Operation not permitted
#
とりあえず移動やリネームによるアキレス腱は消えました。
そして、肝心の削除ですが、
# rm ld-elf.so.1
override r-xr-xr-x root/wheel schg for ld-elf.so.1? y
rm: ld-elf.so.1: Operation not permitted
消せなくなりました。よかったー。(^^;