GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es posible 'ocultar' un proceso de la lista de 'ps' o 'top' en Linux?

Según el parche del kernel http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0499680a42141d86417a8fbaa8c8db806bea1201, puede usar la opción hidepid para el sistema de archivos proc:

hidepid=0 (predeterminado) significa el comportamiento anterior:cualquiera puede leer todos los archivos /proc/PID/* legibles por todo el mundo.

hidepid=1 significa que los usuarios no pueden acceder a ningún directorio /proc//, sino al suyo propio. Los archivos confidenciales como cmdline, sched*, status ahora están protegidos contra otros usuarios. Como la verificación de permisos realizada en proc_pid_permission() y los permisos de los archivos no se tocan, los programas que esperan modos de archivos específicos no se confunden.

hidepid=2 significa hidepid=1 más todos /proc/PID/ serán invisibles para otros usuarios. No significa que oculte si existe un proceso (se puede aprender por otros medios, por ejemplo, mediante kill -0 $PID), pero oculta el euid y el egid del proceso. Complica la tarea del intruso de recopilar información sobre procesos en ejecución, si algún demonio se ejecuta con privilegios elevados, si otro usuario ejecuta algún programa confidencial, si otros usuarios ejecutan cualquier programa, etc.

gid=XXX define un grupo que podrá recopilar la información de todos los procesos (como en el modo hidepid=0). Este grupo debe usarse en lugar de poner un usuario no root en el archivo sudoers o algo así. Sin embargo, los usuarios que no son de confianza (como demonios, etc.) que no deben monitorear las tareas en todo el sistema no deben agregarse al grupo.

No puede controlar la visibilidad a nivel de proceso; sin embargo, puede asegurarse de que sus usuarios solo puedan ver sus propios procesos.

En caso de que tenga una versión del kernel superior a la 3.3, puede intentarlo con el siguiente comando:

 
mount /proc -o remount,hidepid=2


Bueno, aquí tienes un par de opciones. Tomar la salida más fácil sería cambiar los programas ps y superiores con versiones modificadas que oculten lo que desea ocultar.

La alternativa sería ejecutar su código incrustado en un proceso existente, o escribir un script de envoltura alrededor de su código con un nombre inocuo.

En algunas versiones de PS, puede modificarlo cambiando argv[], pero no estoy seguro si eso funciona para top, y no estoy seguro si funciona en Linux (es principalmente una convención BSD).

Todo depende, ¿exactamente de lo que busca lograr al hacer esto?


Linux
  1. Cómo buscar en la web desde la terminal en Linux

  2. Linux:¿la columna de búferes en la salida de Free?

  3. ¿Cómo calcular el uso de CPU de un proceso por PID en Linux desde C?

  4. ¿Cuál es la fuente actual del kernel de Linux?

  5. ¿Es posible instalar la fuente Helvetica en Linux?

Cambiar el tamaño de una imagen desde la terminal de Linux

Programe hardware desde la línea de comandos de Linux

Encuentre el tiempo de ejecución de un comando o proceso en Linux

Cómo cambiar la prioridad de un proceso en Linux

Los efectos de agregar usuarios a un sistema Linux

Cómo enviar procesos a segundo plano en Linux