¿Los ejecutables setuid en Linux no pueden usar el área de intercambio? Leí un libro relacionado con la seguridad que dice que Setuid programs can not have memory they use written to disk.
que me sorprendió.
Cuando los programas desean marcar un área específica de la memoria que no debe ser intercambiable por razones de rendimiento o seguridad, pueden usar mlock () llamada al sistema o mmap () con MAP_LOCKED . Tenga en cuenta que la memoria mlock () ed todavía se puede escribir en el disco si se suspende en el disco (a.k.a. hibernate); para poder suspender de forma segura en el disco, deberá configurar el intercambio cifrado y / o el cifrado completo del disco. Además, mientras que el volcado del núcleo a menudo está deshabilitado por defecto en muchas distribuciones, si habilita el volcado del núcleo, la memoria mlock () también puede ser volcada, el programa puede usar MADV_DONTDUMP o coredump_filter para decirle al kernel que no incluya cierta memoria del volcado del núcleo .
No puedo encontrar ninguna referencia en ninguna parte en página de manual POSIX setuid () o Linux setuid () manpage que especificó que el programa setuid no puede intercambiarse automáticamente.
La oración más cercana que podría parecerse a la reclamación del libro, de la página de manual de setuid () de Linux, es "Si uid es diferente del UID efectivo anterior, se prohibirá al proceso dejar los volcados de memoria".
Lea otras preguntas en las etiquetas linux