Passos para reproduzir:
germar@host:~$ cd /tmp/
germar@host:/tmp$ touch test && chmod u+s test && ls -la test
-rwSr--r-- 1 germar germar 0 Nov 2 20:11 test
germar@host:/tmp$ chown germar:germar test && ls -la test
-rw-r--r-- 1 germar germar 0 Nov 2 20:11 test
Testado com Debian squeeze e Ubuntu 12.04
permissions
users
chown
Germar
fonte
fonte
Respostas:
Não é um bug de acordo com a documentação do chown:
$
info coreutils 'chown invocation'
fonte
info coreutils
antes. Eu só li a página de manual e procurei na web.Isso ocorre por design e é um comportamento padrão. Citando o padrão POSIX :
(
s
é setuid (ou setgid na coluna do grupo), não é pegajoso, a propósito.)Esse comportamento segue o da chamada de sistema subjacente (exceto que em alguns sistemas, os bits setxid são limpos apenas para arquivos executáveis).
O motivo para remover o bit setuid é que alterar o proprietário também altera qual usuário será o ID do usuário efetivo do processo. Em particular, em sistemas em que um usuário pode doar um arquivo,
cp /bin/sh foo; chmod u+s foo; chown joe foo
criaria um executável setuid pertencente a joe, um enorme buraco de segurança.fonte