El wcomando muestra un montón de información sobre quién inició sesión en lo que está haciendo.
Ejemplo de Wikipedia :
$ w
 11:12am up 608 day(s), 19:56,  6 users,  load average: 0.36, 0.36, 0.37
User     tty       login@  idle  what
smithj   pts/5      8:52am       w
jonesm   pts/23    20Apr06    28 -bash
harry    pts/18     9:01am     9 pine
peterb   pts/19    21Apr06       emacs -nw html/index.html
janetmcq pts/8     10:12am 3days -csh
singh    pts/12    16Apr06  5:29 /usr/bin/perl -w perl/test/program.pl
Sé que obtiene la información de las primeras 3 columnas de utmp y wtmp , que tiene permisos de lectura para todos, pero ¿de dónde obtiene la información para el tiempo de inactividad y lo que el usuario está haciendo actualmente ?
ls -l $(which w)muestra que el wprograma no tiene el bit setuid establecido y, como usuario normal, no tengo permiso para ver otros procesos /proc.

wcomando no parece variar demasiado entre las variantes.Respuestas:
Al menos en Linux, dado que cualquier entrada de usuario en el terminal accederá al dispositivo de usuario actual, realiza una llamada stat () a / dev / {tty, pts /}? * Y comprueba el tiempo para los usuarios registrados. De wc:
stat () solo requiere permisos de ejecución (x) en el directorio padre para funcionar.
fuente
w.c?