Cualquier programa debería ejecutarse exclusivamente con los privilegios imprescindibles. Idealmente el programa debería tener vetado el acceso a todos los recursos del sistema, y el administrador debería poder abrirle el acceso recurso por recurso, tal y como se hace en los grandes "mainframes".
En este aspecto el comando "chroot" resulta de gran ayuda, ya que posibilita compartimentar hasta cierto punto los recursos dependientes del sistema de ficheros (en Unix son la inmensa mayoría). No obstante, es imprescindible hacer notar que no es la panacea, sino una herramienta más. Hay que tener muchas cosas en cuenta cuando se utiliza, como se indica en los siguientes textos:
Chroot y Seguridad
Linux Actual, año 1, número 3
Páginas 75-76
http://www.argo.es/~jcea/artic/chroot.htm∞http://www.argo.es/~jcea/artic/chroot2.htm∞
El ser sobrio en los privilegios incluye a los programas SUID. Un programa SUID (otras personas les llaman SETUID, cuestión de nomenclatura) es aquel que se ejecuta con los privilegios de su propietario, no con los privilegios del usuario que lo invoca. Por ejemplo, para cambiar la clave de un usuario hace falta poder escribir en "/etc/passwd", lo que sólo puede hacer "root". Evidentemente no queremos que el usuario, con ese acceso, pueda hacer otra cosa que cambiar su clave, ¿verdad?