Назад | Перейти на главную страницу

Почему у меня вошло больше пользователей, чем есть?

В старой коробке GNU / Linux Ubuntu я вижу что-то вроде

lorenzo@metropolis:~
    $ w
 09:58:18 up 651 days, 19:30,  5 users,  load average: 0.28, 0.30, 0.24

Проблема в том, что я вошел в другие три сеанса. Число должно быть четыре, а не пять. Любая подсказка, почему количество зарегистрированных пользователей выше?

Однако проверка lastlog возвращает правильное значение:

lorenzo@metropolis:~
    $ sudo last -ain 7 | grep 'still logged in' | wc -l
4

[отредактировано] Вот результат who, снято в другом случае, но по-прежнему отображаются два пользователя, а три пользователя w

lorenzo@metropolis:~
    $ who 
lorenzo  pts/0        Dec 28 13:10 (XXX)
lorenzo  pts/1        Dec 28 13:07 (XXX)
lorenzo@metropolis:~
    $ w
 13:11:15 up 651 days, 22:43,  3 users,  load average: 0.49, 0.40, 0.31
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
lorenzo  pts/0    XXX              13:10    0.00s  0.11s  0.00s w
lorenzo  pts/1    XXX              13:07    3:09m  0.13s  0.13s -bash

Мое параноидальное чувство покалывает.

[отредактировано] запрошены еще несколько команд

    $ cat /etc/issue
Ubuntu 8.04 \n \l

    $ dpkg-query -S /usr/bin/w.procps 
procps: /usr/bin/w.procps

    $ dpkg-query -S /usr/bin/who
coreutils: /usr/bin/who

w использует /var/run/utmp и /proc файловая система (в Linux), записывающая, кто в данный момент находится в системе.

last использует /var/log/wtmp/var/log/btmp), показывая, как выполнялся вход в систему. Однако не каждая программа обновит эти файлы должным образом, в некоторых системах эти файлы могут даже не существовать.

Например, в моей системе w видит мои 5 сеансов входа в систему в рамках одного сеанса экрана GNU:

$ w | tail -n +3 | wc -l
5

$ last | grep -c still\ logged
1

Все же last только записал один активный сеанс. При установке deflogin=off на экране GNU, даже w теряет отслеживание активных сеансов входа в систему и продолжает отображать 5 сеансов, хотя я только что открыл еще 5 окон в том же сеансе экрана.

IOW: используйте, например, ps чтобы узнать, сколько пользователей находятся в сети, сколько оболочек открыто и т. д. Это даст более точные результаты, поскольку не полагается на (устаревшие) файлы статистики, такие как /var/log/utmp.

при использовании только 'w' он будет отображать заголовок и команду, которую вы в данный момент запускаете, поэтому он всегда будет показывать дополнительную строку, где появляется ваш пользователь, выполняющий 'w', тогда он всегда будет показывать еще одну строку.

В моем случае, w возвращает Xsession плюс открытые терминалы

$ w
 12:05:40 up  3:47,  2 users,  load average: 0.02, 0.15, 0.16
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
userXX   tty7     :0               08:18    3:47m 13:41   0.00s /bin/sh /etc/xdg/xfce4/xinitrc -- /etc/X11/xinit/xserverrc
userXX   pts/0    :0.0             12:03    0.00s  0.11s  0.00s w

Поэтому на одного пользователя больше. У тебя тоже самое? Не могли бы вы использовать полный w результат, если это не так?