Não é possível chover recursivamente

1

Estou usando este comando:

chown root:www-data /var/www/example.com -R 

mas recebo uma mensagem de erro informando que o diretório não está listado.

O que está errado?

    
por Mubbi 05.05.2013 / 10:31

2 respostas

2

Você precisa colocar a opção -R na frente.

chown -R root:www-data /var/www/example.com 

(Eu sempre uso um ponto em vez de dois-pontos entre usuário e grupo, mas as páginas man dizem que os dois pontos devem ser usados).

    
por 05.05.2013 / 10:52
2

A versão GNU coreutils de chown , que é padrão no Ubuntu, aceita opções colocadas em qualquer lugar (contanto que -- não seja usado). Isso é:

chown foo:bar some/location -R
chown -R foo:bar some/location

ambos funcionam. Isso ocorre porque getopt_long() funciona. No meu livro isso é um bug - como deveria resultar em erro, ou ser documentado, que de o que eu posso achar que não é.

chown foo:bar some/location -- -R

procuraria o diretório chamado -R .

No entanto, se um conjunto de variáveis de ambiente POSIXLY_CORRECT o primeiro exemplo falharia se não houvesse um diretório chamado -R e nunca iria recorrer.

$ export POSIXLY_CORRECT=
$ chown -v :foo a/ -R
ownership of 'a/' retained as foo:foo
chown: cannot access '-R': No such file or directory

IMHO: sempre tente se adequar ao modo POSIX, pois um dia você insere esse comando em outro sistema onde um POSIX é aplicado, quebrando assim.

Observe também que o valor de POSIXLY_CORRECT não tem efeito. Isso não desativaria:

export POSIXLY_CORRECT=0
export POSIXLY_CORRECT=no
export POSIXLY_CORRECT=false
export POSIXLY_CORRECT=...

Seria necessário unset .

Pode ser que seu sistema esteja configurado com outra ferramenta chown ou POSIXLY_CORRECT está definido.

Verifique por:

export | grep POSIX
chown --version
# etc.

Como nota de rodapé, o uso de ponto, . , para separar grupo e usuário ficou obsoleto a partir de POSIX 2001 ( info coreutils 'chown invocation' ), mas ainda suportado para compatibilidade com versões anteriores, não é recomendado.

    
por 05.05.2013 / 15:33