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
setuid
bit, no el sticky
bit. (2) No borrar el setuid
bit cuando lo hace chgrp
o chown
sería un problema de seguridad.
4XXX
bit se llama bit setuid (s
), no pegajoso. Sticky es elt
bit y su propósito es un poco diferente: en.wikipedia.org/wiki/Sticky_bit