El kernel de Linux admite el permiso setuid y setgid para archivos binarios ejecutables.
¿Es posible construir un kernel sin estas capacidades?
Sin estos, los administradores son los únicos usuarios que pueden manipular el sistema.
Respuesta1
Probablemente sea posible eliminar esta característica del kernel y también es posible montar sistemas de archivos sin suid, usando la nosuid
opción. Esto me parece más simple y lograría lo mismo.
Pero rompe unlotede características. Esta es una lista de comandos en /usr/
y `/bin/ que tiene setuid en Ubuntu 18.04:
$ find /usr /bin -perm -4000
/usr/bin/pkexec
/usr/bin/gpasswd
/usr/bin/traceroute6.iputils
/usr/bin/newgrp
/usr/bin/arping
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/sudo
/usr/lib/xorg/Xorg.wrap
/usr/lib/eject/dmcrypt-get-device
/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
/usr/lib/s-nail/s-nail-privsep
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/sbin/pppd
/bin/ping
/bin/mount
/bin/umount
/bin/su
/bin/fusermount
Los usuarios ya no podrán cambiar sus propias contraseñas. No podrán montar dispositivos USB. No podrán elevar privilegios. No podrán hacer ping para eliminar hosts. Y probablemente más consecuencias no deseadas.
En resumen, probablemente esté gritando los tres equivocados si su objetivo es proteger su sistema. Probablemente un mejor enfoque sea buscar en AppArmomur o SELinux, que intenta hacer cumplir los permisos de los usuarios de una manera más rigurosa que el kernel de Linux estándar. Tiene un costo: mayor complejidad.
Si hace esto en un sistema Ubuntu básico, probablemente verá todo tipo deinteresantecomportamiento.