Como excluo um link físico para um executável que não possuo?

5

Eu usei o seguinte comando para criar um link físico para um executável:

ln 'which xcrun' gcc

O link funcionou como esperado. No entanto, parece que não tenho permissão para removê-lo.

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

Uh oh.

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

Eu não tenho sudo access. O que preciso fazer para excluir o link físico?

    
por Maxpm 20.12.2012 / 20:43

2 respostas

7

Faça um ls -ld. do diretório que contém o link físico. Se você possui o diretório (ou tem permissão 'w'), você deve ser capaz de apagá-lo. Se o diretório (ou seja, / tmp) tiver o conjunto 't' (bit pegajoso), você não poderá excluir este link, pois não é o proprietário do arquivo. Da próxima vez use ln -s (um link simbólico). As ACLs também podem impedir a remoção de arquivos.

    
por 20.12.2012 / 21:00
3

O link físico é criado com permissões originais porque, caso contrário, qualquer pessoa poderia conceder permissões de edição para qualquer arquivo.

Você precisa de permissões de gravação para a pasta pai para poder remover o arquivo. Certifique-se de que não haja ACLs ( ls -e ) impedindo você de fazer isso.

    
por 20.12.2012 / 20:51