Eu sugiro que você divida sua operação em duas partes:
- 'desvincular' o link simbólico
- 'rm' o diretório indesejado
É mais limpo e menos propenso a erros. Você também receberá os erros exatos, para cada um desses comandos.
Eu estou tentando remover o symlink, embora eu tenha permissão apropriada, a operação é negada (o usuário é chamado de capistrno
):
capistrno $ rm -f /var/www/app/current
rm: cannot remove '/var/www/app/current': Permission denied
o usuário deve ter todas as permissões para este arquivo
lrwxrwxrwx 1 capistrano capistrano 42 17. mar 13.09 /var/www/app/current -> /var/www/app/releases/20130317120932/
capistrno $ file /var/www/app/current
/var/www/app/current: symbolic link to '/var/www/app/releases/20130317120932'
Alguma ideia do que está errado?
EDITAR:
pasta /var/www/app
$ ls -laF /var/www/app/
total 16
drwxr-xr-x 4 www-data www-data 4096 17. mar 14.15 ./
drwxrwxr-x 4 capistrano www-data 4096 17. mar 00.01 ../
drwxrwxr-x 6 capistrano www-data 4096 17. mar 14.15 releases/
drwxrwxr-x 7 capistrano www-data 4096 17. mar 00.39 shared/
usuário capistrano
pertence a esses grupos:
$ groups
capistrano www-data rvm
Os links simbólicos sempre são exibidos com permissões 777 e podem ser excluídos somente por raiz , proprietário e grupo proprietário .
A menos que você tenha cometido um erro de digitação ao limpar esta postagem, você atribuiu a propriedade e o grupo ao capistrano, enquanto o nome do usuário deve ser o capistrano.
capistrano = / = capistrno