我使用以下命令创建指向可执行文件的硬链接:
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
)阻止您执行此操作。