ПРОЕКТЫ 


  АРХИВ 


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.

> Вылечилось следующим образом
> 
> 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.



 




Copyright © Lexa Software, 1996-2009.