[sisyphus] coreutils, who )
Artem
=?iso-8859-1?q?x-console_=CE=C1_yandex=2Eru?=
Ср Май 17 00:39:06 MSD 2006
Dmitry V. Levin wrote:
> On Tue, May 16, 2006 at 10:04:08AM +0300, Artem wrote:
>
>>Michael A. Kangin wrote:
>>
>>>On 16 мая 2006 01:37 Artem <x-console на yandex.ru> wrote:
>>>
>>>
>>>>Да, я уже нашел _одну_ строчку в coreutils-xxx/libs/readutmp.c из-за
>>>>которой эта вещь происходит.
>>>
>>Эта информация скорее уже к coreutils@ . Описанное поведение who (см.
>>тред) аналогично проявляется и в users.
>>Предпосылки:
>>в coreutils-5.94/lib/readutmp.c , line 107, добавили вызов ф-ции:
>><skip>
>>if (desirable_utmp_entry (u, options))
>><skip>
>>для отбора записей utmp по определенным критериям
>>
>>Причина:
>>в coreutils-5.94/lib/users.c , line 138,
>><skip>
>> switch (argc - optind)
>> {
>> case 0: /* users */
>> users (UTMP_FILE, READ_UTMP_CHECK_PIDS);
>> ^^^^^^^^^^^^^^^^^^^^^
>> вызов users без параметров,
>> параметр READ_UTMP.... == 1
>> break;
>>
>> case 1: /* users <utmp file> */
>> users (argv[optind], 0);
>> ^^^^^^^^^^^^^^^^^^^^^^^
>> а вот здесь при users <utmp file>
>> подставляется "0" и выводится все записи.
>>
>> break;
>><skip>
>>
>>Аналогично в coreutils-5.94/src/who.c, line 815
>><skip>
>> case 0: /* who */
>> who (UTMP_FILE, READ_UTMP_CHECK_PIDS);
>> break;
>>
>> case 1: /* who <utmp file> */
>> who (argv[optind], 0);
>> break;
>>
>><skip>
>>
>>Спрашивается:
>>а) зачем добавлено такое поведение?
>>б) почему не сказано ничего в man ?
>>в) это бага? Или фича?
>
>
https://bugzilla.altlinux.org/show_bug.cgi?id=9579
> 2005-03-30 Paul Eggert <eggert на cs.ucla.edu>
>
> * src/pinky.c (short_pinky): Adjust to read_utmp signature change.
> * src/uptime.c (uptime): New arg OPTIONS. All uses changed.
> * src/users.c (users): Likewise.
> * src/who.c (who): Likewise.
> * src/uptime.c (main): Check PIDs when invoked with zero arguments.
> * src/users.c (main): Likewise.
> * src/who.c (main): Likewise. Also with two arguments.
> Omit duplicate code in 2-arg case.
> (UT_PID): Moved to ../lib/readutmp.h.
>
В принципе, wttyhx правится элементарно заменой "who" на
"who /var/run/utmp" . Что я для себя и сделал.
Rgds, Artem.
Подробная информация о списке рассылки Sisyphus