Проблема с who на Debian-6 (Нет списка пользователей от root)

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
UserOnStart
Сообщения: 231
ОС: Slackware

Проблема с who на Debian-6

Сообщение UserOnStart »

Столкнулся с такой надобностью: пишу скрипт для работы которому необходимо узнать текущий список работающих в системе в данный момент пользователей. Скрипт работает от root'а. Думал формировать список с who, но не тут то было. Если пользователь вошел в X через *dm, то его нет в списке (во всяком случае пока не запустит терминал). Что не совсем понял:
1. Это особенность Debian-6? Пробовал в других дистрах - работает, все пользователи отображаются и от способа входа это не зависит.
2. Если я ошибаюсь, то какой командой следует воспользоваться, или какие параметры использовать.
3. Может какие-то дополнительные соображения?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Проблема с who на Debian-6

Сообщение diesel »

Вообще всех показывает:

Код: Выделить всё

$ who
diesel   tty7         2011-04-02 16:47 (:0)
test     pts/0        2011-04-02 18:06 (192.168.0.7)


diesel - как раз таки имеет запущенный Гном, без терминалов. С терминалом было бы вот так:

Код: Выделить всё

$ who
diesel   tty7         2011-04-02 16:47 (:0)
test     pts/0        2011-04-02 18:06 (192.168.0.7)
diesel   pts/1        2011-04-02 18:08 (:0.0)


можно еще who -u, например, или вообще who -a.
Спасибо сказали:
Аватара пользователя
UserOnStart
Сообщения: 231
ОС: Slackware

Re: Проблема с who на Debian-6

Сообщение UserOnStart »

Понятно, спасибо. Этого я и ожидал. Значит имеет место некий локально-персональный косяк. Может у кого есть идеи по поводу как оно фиксится должно? Права 644 root:wtmp. Что еще можно посмотреть?
Странное дело - рут видит только текстово-терминальные сессии пользователей, в то время как сами пользователи видят все как надо - и себя и других в графике и терминалы свои и других пользователей...

флажки ничего не решают :-(
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Проблема с who на Debian-6

Сообщение diesel »

UserOnStart писал(а):
04.04.2011 16:41
Понятно, спасибо. Этого я и ожидал. Значит имеет место некий локально-персональный косяк. Может у кого есть идеи по поводу как оно фиксится должно? Права 644 root:wtmp. Что еще можно посмотреть?
Странное дело - рут видит только текстово-терминальные сессии пользователей, в то время как сами пользователи видят все как надо - и себя и других в графике и терминалы свои и других пользователей...

флажки ничего не решают :-(

может какие-то aliasы(если вы пробуете строчку исполнить в CLI)? может быть исполняется другой who? - попробовать сравнить whereis who для пользователя и для root'а - указывают ли они на один и тот же бинарник? Попробовать указать полный путь к бинарнику?
Спасибо сказали:
Аватара пользователя
UserOnStart
Сообщения: 231
ОС: Slackware

Re: Проблема с who на Debian-6

Сообщение UserOnStart »

bin'арник в системе один. Пробовал пересобирать coreutils, куда ху и входит и стартовать его из отдельной диры. Ничего не дало (следовало ожидать). Переустановили базовые пакеты - по нулям. Тест установочного медиа и поверхности винта говорят все гут. Задолбало ловить блоху, в общем, сделали слив списка пакетов и переустановили с 0, благо пресетов и опциона накрутить не успели. Все завелось, более того работать стало несколько шустрее. Теряюсь в догадках что бы это могло все таки быть, но тема больше не актуальна, разве только если кто еще на такие грабли нарвется. Спасибо за наводки.
Спасибо сказали:
Аватара пользователя
nibbler
Сообщения: 42
ОС: debian

Re: Проблема с who на Debian-6

Сообщение nibbler »

что выдает
w
??
это более информативный чем who
Спасибо сказали:
Аватара пользователя
UserOnStart
Сообщения: 231
ОС: Slackware

Re: Проблема с who на Debian-6

Сообщение UserOnStart »

Прошу прощения что давно не писал. Всем спасибо за подсказки.
Наконец разобрался. Печальное дело, однако. Почему-то разные *dm'ы и разные окружения пользователя по разному реагируют на вход пользователя. Выяснилось что wdm, xdm, kdm - делают все единообразно, при входе создают по одной записи для каждого вошедшего пользователя, а вот gdm3, почему-то, создает этих записей две. Соответственно Gnome, похоже, зная об такой "особенности", после входа одну запись из списка убирает. Как результат - если мы входим из gdm в Gnome или из kdm в KDE, то все нормально, а вот если у нас перекрестный вариант (например, один dm и много окружений), то либо появляются лишние записи, либо их на одну меньше чем должно быть.
Песня примерно того же рода как и вопрос: "Почему в КДЕ Гномовые приложения в трее криво отображаются?"
По поводу w и прочих подмен who - в мане написано что они все берут информацию из одних и тех же файлов - utmp, wtmp, а там она хранится в неудобочитаемом виде. Так что вывод подобных команд одинаков (специально пробовал), в том смысле что если нет пользователя в who, его не будет и в w.
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Проблема с who на Debian-6

Сообщение Nazyvaemykh »

Вообще, может быть, посмотреть на ConsoleKit? Я не очень-то в этом разбираюсь/ориентируюсь, но, по-идее, ConsoleKit как раз и нужен для того, чтобы знать/управлять тем, кто где сидит, кто как залогинился?
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Проблема с who на Debian-6

Сообщение Nazyvaemykh »

Команда ck-list-sessions должна помочь… Особенно, если используется модуль PAM pam_ck_connector.so
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали: