Tenemos imágenes de Linux basadas en HR; en el que tengo que "aplicar" algún "archivo especial" para actualizarlos a la última versión de desarrollo de nuestro producto.
La persona que creó el archivo pensó que dentro de nuestra imagen base, algunos permisos son incorrectos; entonces nos dijeron que corrieramos
sudo chgrp -R nobody /whatever
Nosotros hicimos eso; y más tarde, cuando nuestra aplicación se está ejecutando, surgieron problemas oscuros.
Lo que encontré más adelante: la llamada a chgrp va a borrar la información de bit setuid en nuestros archivos binarios en / lo que sea.
Y el problema real es: algunos de nuestros binarios deben tener ese bit setuid establecido para funcionar correctamente.
Larga historia corta: ¿hay alguna manera de ejecutar ese comando "chgrp" sin matar mis bits setuid?
Acabo de ejecutar lo siguiente en mi Ubuntu local; conduciendo al mismo resultado:
mkdir sticky
cd sticky/
touch blub
chmod 4755 blub
ls -al blub
-> me muestra el nombre del archivo con fondo rojo -> entonces, sí, setuid
chgrp -R myuser .
ls -al blub
-> me muestra el nombre del archivo sin fondo rojo -> setuid se ha ido
setuidbit, no el stickybit. (2) No borrar el setuidbit cuando lo hace chgrpo chownsería un problema de seguridad.
4XXXbit se llama bit setuid (s), no pegajoso. Sticky es eltbit y su propósito es un poco diferente: en.wikipedia.org/wiki/Sticky_bit