ベストアンサー1
ほとんどのUnixシリーズシステム(Apple OS / Xはいくつかの例外の1つ)と同様に、Linuxはターゲットを確認するときにシンボリックリンクの権限を無視します。
ただし、他のファイルと同様に、シンボリックリンクの所有権はビットが設定されているディレクトリと同じです(t
例:/tmp
。
ファイルを削除または名前変更するには(シンボリックリンクの有無にかかわらず)、ファイルの/tmp
所有者である必要があります。これがシンボリックリンクの所有権を変更する理由の1つです(リンクを解除または名前変更する権限を付与または削除するため)。
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
また、Mark Plotnickが彼の本で述べたように、回答は現在削除されましたlchown()
、バックアップおよびアーカイブアプリケーションは、元の所有者へのシンボリックリンクを復元する必要があります。別のオプションは、シンボリックリンクを作成する前にeuidとegidを切り替えることです。ただし、この方法は機能せず、シンボリックリンクが抽出されるディレクトリの権限管理を複雑にします。