Pasos para reproducir:
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
Probado con Debian Squeeze y Ubuntu 12.04
permissions
users
chown
Germar
fuente
fuente
Respuestas:
No es un error de acuerdo con la documentación del chown:
PS
info coreutils 'chown invocation'
fuente
info coreutils
antes. Solo leí la página de manual y busqué en la web.Esto es por diseño, y es un comportamiento estándar. Citando el estándar POSIX :
(
s
es setuid (o setgid en la columna del grupo), no pegajoso, por cierto).Este comportamiento sigue al de la llamada del sistema subyacente (excepto que en algunos sistemas, los bits setxid solo se borran para archivos ejecutables).
La razón para eliminar el bit setuid es que cambiar el propietario también cambia qué usuario será la ID de usuario efectiva del proceso. En particular, en sistemas donde un usuario puede regalar un archivo,
cp /bin/sh foo; chmod u+s foo; chown joe foo
crearía un ejecutable setuid que pertenece a Joe, un agujero de seguridad gigante.fuente