ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: Inet-Admins
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.
да, FreeBSD 2.2.5

>
>> Вылечилось следующим образом
>> 
>> 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 символов
если я еще не совсем забыл С :) то как раз вместо 8-го символа
имени пользователя ( поскольку UT_NAMESIZE=8 ) запишется этот самый '\0'

странность еще в том, что родная программа login.c (из исходников
самой FreeBSD) не делает добавления '\0'.
судя по этому, как мне кажется, добавление этого символа в такаксе
является излишним :), во всяком случае для FreeBSD < 3.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).
>
>Если у Вас достаточно распространенная система, я могу попробовать сделать
>для нее патч на эту тему.
наверное игра не стоит свеч :)

>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  Pavel N. Vladimirov                                  pasa@pleskov.ru
>  Administration of Pskov Region                       FIDO 2:5033/2
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
Dmitriy Yermakov, CCS SUT
dyer@sut.ru
=============================================================================
"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.



 




Copyright © Lexa Software, 1996-2009.