如何删除指向不属于我的可执行文件的硬链接?

如何删除指向不属于我的可执行文件的硬链接?

我使用以下命令创建指向可执行文件的硬链接:

ln `which xcrun` gcc

链接按预期工作。但是,我似乎没有删除它的权限。

$ rm gcc
override rwxr-xr-x  root/wheel compressed for gcc? y
rm: gcc: Permission denied
$ unlink gcc
unlink: gcc: Permission denied

哦哦。

$ ls -l gcc
-rwxr-xr-x  3 root  wheel  1172 May 10  2012 gcc

我没有sudo访问权限。我该怎么做才能删除硬链接?

答案1

对包含硬链接的目录执行 ls -ld .。如果您拥有该目录(或具有“w”权限),则应该能够删除它。如果目录(即 /tmp)设置了“t”(粘性位),那么您将无法删除此链接,因为您不是该文件的所有者。下次使用 ln -s(符号链接)。ACL 也可能阻止您删除文件。

答案2

硬链接是使用原始权限创建的,因为否则任何人都可以授予自己对任何文件的编辑权限。

您需要对父文件夹具有写入权限才能删除该文件。请确保没有 ACL(ls -e)阻止您执行此操作。

相关内容