Как удалить жесткую ссылку на исполняемый файл, который мне не принадлежит?

5

Я использовал следующую команду для создания жесткой ссылки на исполняемый файл:

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доступа. Что мне нужно сделать, чтобы удалить жесткую ссылку?

Maxpm
источник

Ответы:

7

Сделай лс-лд. каталога, содержащего жесткую ссылку. Если вы являетесь владельцем каталога (или имеете разрешение 'w'), вы сможете удалить его. Если в каталоге (например, / tmp) установлено значение «t» (sticky bit), вы не сможете удалить эту ссылку, поскольку вы не являетесь владельцем файла. В следующий раз используйте ln -s (символическая ссылка). Списки ACL также могут помешать вам удалить файл.

Якорь,
источник
Действительно, в папке действительно установлен липкий бит (и у меня нет прав на его удаление). Это означает, что я должен искать вмешательства администратора, верно?
Maxpm
1
К сожалению, да, вы делаете.
MDPC
3

Жесткая ссылка создается с оригинальными разрешениями, потому что в противном случае любой может сам дать разрешение на редактирование любого файла.

Вам нужно разрешение на запись в родительскую папку, чтобы иметь возможность удалить файл. Убедитесь, что ACL ( ls -e) не позволяют вам сделать это.

Даниэль Бек
источник
1
На самом деле, дело не в том, что ссылка «создана с оригинальными разрешениями», а в том, что разрешения прикреплены к самому файлу (inode), а не к ссылке. Вы не можете иметь разные жесткие ссылки с разными разрешениями, указывающими на один и тот же файл.
Дэвид Гелхар