[sisyphus] coreutils, who )

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Май 16 21:19:45 MSD 2006


Dmitry V. Levin wrote:
> On Tue, May 16, 2006 at 06:01:44PM +0400, Anton Farygin wrote:
>> Dmitry V. Levin wrote:
>>> On Tue, May 16, 2006 at 12:13:56PM +0400, Anton Farygin wrote:
>>>> Это обсуждение надо переносить в bugzilla, ибо почему-то мантейнер 
>>>> coreutils его пропускает.
>>> Можно с самого начала и сразу в деталях?
>> С самого начала:
>>
>> в пакете powersave лежит утилита
>> /usr/lib/powersave/wttyhx, которая детектит где и кем юзаются иксы.
>>
>> До определённого момента она выводила пользователя и терминала. После 
>> определённой версии coreutils - стала выводить 
>> #/usr/lib/powersave/wttyhx -a
>> root    :0
>>
>> т.е. - всегда рута
>>
>> алгоритм там простой:
>> getuserfromwho() {
>>          while read NAME DISP REST; do
>>                  test "$1" = "$DISP" && break
>>          done < <(who)
>>          echo "${NAME:--}"
>> }
>>
>> Т.е. - who из coreutils перестал предоставлять информацию о том, кто и 
>> где запустил иксы.
>>
>> Артём сравнил вывод от двух разных версий coreutils:
>> [user на sol src]$ ./who
>> root     tty1         2006-05-09 18:36 (localhost)
>> user     tty2         2006-05-15 15:40 (localhost)
>> user     :0           2006-05-15 15:36
>> root     ???          2006-05-09 20:07 (localhost)
>> user     pts/3        2006-05-15 16:53 (:0.0)
>> user     pts/5        2006-05-15 17:04 (:0.0)
>> user     pts/12       2006-05-10 20:05 (:0.0)
>>
>> Новые ver 5.94
>> [user на sol src]$ who
>> root     tty1         2006-05-09 18:36 (localhost)
>> user     tty2         2006-05-15 15:40 (localhost)
>> user     pts/3        2006-05-15 16:53 (:0.0)
>> user     pts/5        2006-05-15 17:04 (:0.0)
>>
>> В первом случае wttyhx работает, во втором - нет
> 
> Может, who раньше работал неправильно, а сейчас -- правильно?
> Может, wttyhx полагается на неправильное поведение who?
> Что это за wttyhx и как оно работает?

wttyhx:
$ rpm -qf /usr/lib/powersave/wttyhx
powersave-0.12.11-alt2
$ /usr/lib/powersave/wttyhx --help
usage: /usr/lib/powersave/wttyhx [-h] [-q] [-t]
   -a: print all users that run a X server and the display numbers
   -h: print a help message
   -q: be quiet, dont print any output
   -t: print a table of pids and vts of all running X server
   -v: print tty, user, display and version of X
   -3: also return 1 if XF86version is 3
   -4: also return 1 if XF86version is 4
-a, -q, -t and -v are mutually exclusive

Как работает - я показал выше. Это обычный скрипт на bash.

вообще у меня есть подозрение что мы носили с собой патч на coreutils, 
изменяющий поведение who. Но я могу и ошибаться.

Rgds,
Rider




Подробная информация о списке рассылки Sisyphus