Команда w
показывает кучу информации о том, кто вошел в систему, что они делают.
Пример из Википедии :
$ 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
Я знаю, что он получает информацию о первых трех столбцах от utmp и wtmp , у которых есть права на чтение для всех, но где он получает информацию для простоя и что в данный момент делает пользователь ?
ls -l $(which w)
показывает, что w
программа не имеет установленного бита setuid и, как обычный пользователь, у меня нет разрешения видеть другие процессы в /proc
.
w
команда, кажется, не сильно отличается между вариантами.Ответы:
По крайней мере, в Linux, поскольку любой пользовательский ввод на терминале будет иметь доступ к текущему пользовательскому устройству, к которому он
stat()
обращается/dev/{tty,pts/}?*
и проверяетatime
наличие зарегистрированных пользователей.От
w.c
:stat()
для работы требуются толькоx
разрешения execute ( ) для родительского каталога.источник
w.c
?