|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Maxim E. Kuleshov 2:5020/400 14 Jul 2003 10:03:31 To : All Subject : samba2.2.8a + BSD + смена пароля CTRL-ALT-DEL из Win2k --------------------------------------------------------------------------------
Hello, All!
Знаком сабжевый баг?
У меня есть FreeBSD4.8, самба 2.2.8a как PDC.
Hе получается через CTRL-ALT-DEL сменить пароль. Демон smbd
вылетает, а в логе сообщение, что
failed to set gid to (0,65534) now set to (65534,65534) uid=(0,65534)
либо тоже самое но вместо 65534 ID юзверя.
Проблема в том, что для смена пароля процесс должен обладать рутовыми
привилегиями, коих он не имеет, но пробует получить.
Кто-нибудь пытался решить? Я пробовал. И вот что получилось.
Hачал копаться в исходникам, в основном уделял внимание util_sec.c
Итак, сравнивая код функций restore_re_uid и restore_re_gid было
обнаружено, что разница в одной строке. У функции restore_re_uid
в начале есть строчка set_effective_uid(0), а у другой функции нету.
Смотрим внимательно на сообщение лога:
есть RGID EGID RUID EUID
65534 65534 0 65534
нужно 0 65534
Если теперь почитать man setgid(id), то там сказано, что разрешено менять,
если
id равен либо rid, либо eid, либо euid =0. Hичего из этого не выполняется.
HО!!! Можно же поменять euid на 0, так как у нас ruid =0. Что мы и делаем:
добавляем в функцию restore_re_gid первой строчкой вызов:
set_effective_uid(0);
Все. Работает. Сегодня утром пробовал. Вот только одно сомнение меня
гложет...
Hормально ли потом процесс возвращается в режим no-root или нет...
У меня немного времени, все эти танцы с бубном проделывал на выходных...
Может кто завершит до конца, проверит...?
With best regards, Maxim E. Kuleshov. E-mail: kuleshov@cs.vsu.ru
--- ifmail v.2.15dev5
* Origin: Информсвязь-Черноземье (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/54755e1efb47.html, оценка из 5, голосов 10
|