¿Cómo enumerar todos los usuarios que tienen sesiones de terminal, incluidas las sesiones de pantalla?

3

Me gustaría tener una lista de todos los usuarios que están activos en mi sistema Linux, incluidos aquellos que tienen sesiones de pantalla en ejecución pero separadas. los who El comando solo me muestra los usuarios que han iniciado sesión actualmente, pero no los usuarios con sesiones de pantalla separadas y similares.

Estaba contemplando analizar la salida de ps pero eso también haría que un usuario muestre si tiene un trabajo cron en ejecución.

Sander Marechal
fuente

Respuestas:

5

Tratar:

$ ps axno user,tty | awk '$1 >= 1000 && $1 < 65530 && $2 != "?"' | sort -u

Esto debería indicar todos los UID con procesos con un terminal de sesión (como una ventana en pantalla). Utilizo el UID para eliminar a los usuarios del 'sistema' (como apache) y a nadie (UID alto), e ignoro los demonios.

Arcege
fuente
2

Puedes probar quién y la salida de ps con un grep:

~$ ps aux | grep screen

Y filtrar en usuario:

~$  ps aux | grep screen | grep $USER

(Reemplace $ usuario con el nombre de usuario).

LocalHost
fuente