Linuxは、ほとんどのUnixライクなシステム(Apple OS / Xはまれな例外の1つです)と同様に、たとえばターゲットを解決する際にシンボリックリンクのアクセス許可を無視します。
ただし、他のファイルと同様に、シンボリックリンクの所有権は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を切り替えることですが、それは効率的ではなく、シンボリックリンクが抽出されるディレクトリでの正しい管理を複雑にします。
lrwxrwxrwx
です。Achmod
はここでは意味がありません。リンクをたどると、ターゲットの権限にアクセスできます。