Утилита w
считывает базу данных utmp
wtmp
для отображения информации TTY, насколько мне известно. Это записано в xdm
, очевидно, с помощью так называемого sessreg
(утилита X11, которая «управляет записями utmp / wtmp для клиентов, не являющихся инициаторами»).
В руководстве sessreg
говорится, что в скрипте X11 Xstartup
следует поместить строку, подобную
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER
. На моей машине OpenBSD строка фактически читает (в / etc / X11 / xdm / Xstartup
)
exec /usr/X11R6/bin/sessreg -a -w /var/log/wtmp -u /var/run/utmp -x /etc/X11/xdm/Xservers -l $DISPLAY -h "" $USER
Флаг -l
имеет следующее описание в sessreg
manual:
Здесь описывается "строковое" имя записи. Для сеансов терминала это последний сегмент пути в имени файла устройства терминала (например,
ttyd0
). Для X-сеансов это должно быть , вероятно, локальное отображаемое имя, данное пользовательскому сеансу (например,: 0
).Если ничего не указано, имя терминала будет определено с помощьюttyname (3)
и без ведущих компонентов.
В качестве эксперимента:
$ doas sessreg -a -l hello kk
( kk
- это я, а doas
- это OpenBSD «эквивалент» sudo
)
$ w
7:31PM up 10:55, 2 users, load averages: 1.20, 1.16, 1.10
USER TTY FROM LOGIN@ IDLE WHAT
kk p0 192.168.216.1 8:47AM 0 tmux: client (/tmp/tmux-1000/default)
kk he - 7:31PM 0 -
$ doas sessreg -d -l hello kk
$ w
7:32PM up 10:56, 1 user, load averages: 1.22, 1.17, 1.11
USER TTY FROM LOGIN@ IDLE WHAT
kk p0 192.168.216.1 8:47AM 0 tmux: client (/tmp/tmux-1000/default)
$ last | head -n 3
kk hello Wed Jan 11 19:31 - 19:31 (00:00)
kk ttyC0 Wed Jan 11 18:54 - 19:21 (00:27)
kk ttyp0 192.168.216.1 Wed Jan 11 08:47 still logged in
В заключение: : 0
- это просто текстовая строка, помещенная в нее утилитой sessreg
. Это может быть что угодно,но, скорее всего, это значение $ DISPLAY
.