Inet-Admins mailing list archive (inet-admins@info.east.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [inet-admins] tac+ia-0.9 & 0.92 bug utmp/wtmp
Hello Dmitriy Yermakov!
> Столкнулся с такой проблемой, что при записи в utmp/wtmp
> такакс обрезает username до 7 символов, что, как мне кажется,
> не совсем правильно. Это приводит к тому, что если еще
> используется демон _acctd_ by bwm для ведения счетчика времени,
> то это время не вычитается и у пользователя получается
> неограниченный доступ.
>
У меня в BSD/OS 2.1 UT_NAMESIZE = 16, то есть обрезает до 15. Очевидно, в
Вашей системе оно 8.
> Вылечилось следующим образом
>
> diff do_acct.c.orig do_acct.c
>
> 140c140
> < u.ut_name[UT_NAMESIZE-1] = '\0';
> ---
> > /* u.ut_name[UT_NAMESIZE-1] = '\0'; */
>
> P.S. другого решения я пока не придумал
Решение нехорошее. Более того, фактически оно не работает. Этой строке
предшествует strncpy, которая не должна копировать более UT_NAMESIZE
символов. Если у вас имя >= 8, то теперь '\0' в конце у Вас не будет, и в
дополнение к 8 символам имени есть большая вероятность получить в конце
некоторый мусор (возможно, что это опять-таки зависит от системы, но в
BSD/OS, на базе исходников которой построены whotac и lasttac,
подразумевается, что в файл пишется структура со строковыми полями,
заканчивающимися '\0')
К сожалению, единственно правильным решением в таком случае будет замена
описания UT_NAMESIZE и соответственно структуры utmp на свою. Очевидно
(зависит от системы, я опять-таки базируюсь на исходниках BSD/OS), это можно
сделать, перенеся (с требуемыми исправлениями) в файл libutil/own_wtmp.h
полностью содержимое файла /usr/include/utmp.h, и исключа директиву #include
<utmp.h> из всех файлов пакета (в каталоге tac_plus она присутствует только
в tac_plus.h).
Если у Вас достаточно распространенная система, я могу попробовать сделать
для нее патч на эту тему.
> Dmitriy Yermakov, CCS SUT
> dyer@sut.ru
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pavel N. Vladimirov pasa@pleskov.ru
Administration of Pskov Region FIDO 2:5033/2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
|