• Авторизация


Воевал с CVS 05-10-2009 18:28 к комментариям - к полной версии - понравилось!


Давненько я не пользовался с нашим локальным CVS. С тех пор пару раз сервер переставлял, но файлы репозитария заботливо сохранял в надежде когда-нибудь вернуться к вопросу. И вот оно наступило.

Поставил себе TortoseCVS, скачал главно последнюю версию - и ни фига не работает.

Ну и ладно. нужно просто по шагам реанимировать, - подумал я

Кому интересен итог - читать конец
Кому интересен весь процесс читать сначала.

Кому неинтересно - не читать!!!

1. Первым делом проверил xinet на предмет запускаемости. Прогнал своим сканером порты сервера - но порт 2401 не отображался.
Долго я бился над этим, пока понял что мой сканер сканирует только стандартные порты. Исправил - порт появился, но в чём тогда дело?

2. Потом я грешил на файрвол/selinux ещё что-нибудь, но я был просто шокирован, когда узнал что один из наших программеров нормально работает с CSV !! Офигеть O_O

3. Потом грешил на новую версию TortoiseCVS, т.к. старая работала(!!) Но я поставил себе старую версию - ноль эмоций!
а ещё я заметил, что при попытке зайти любым пользователем клиент потом спрашивает пароль, а при заходе мной - отрубает сразу!

4. Решил проверить весь трафик сниффером

Тест первый - несуществующий юзер



BEGIN AUTH REQUEST
/mnt/saturn/MainCVS
asdasd
AyZeyZe
END AUTH REQUEST
[/CODE]
ответ:
code:

E Fatal error, aborting.
error 0 asdasd: no such user



Попробовал существующим, это с начала
code:

BEGIN AUTH REQUEST
/mnt/saturn/MainCVS
ghost
A
END AUTH REQUEST


Получил ответ O_O
code:

I HATE YOU



Попробовал существующим, а это клиент уже пытается слать пароль.
code:

BEGIN AUTH REQUEST
/mnt/saturn/MainCVS
ghost
A
END AUTH REQUEST


Но пароль неправильный и соответственно отлуп
code:

I HATE YOU



А когда я захожу собой? Думаете пошлёт? или чо?
code:

BEGIN AUTH REQUEST
/mnt/saturn/MainCVS
marat
A
END AUTH REQUEST


А вот чо:
code:

error 0: root not allowed



Откуда он взял что я рут??
Качаю исходники CVS и гляжу:

server.c
code:

pw = getpwnam (username);
if (pw == NULL)
{
/* bla-bla */
printf ("E Fatal error, aborting.\n\error 0 %s: no such system user\n", username);
/* bla-bla */
error_exit ();
}

if (pw->pw_uid == 0)
{
#ifdef HAVE_SYSLOG_H
/* bla-bla */
syslog (LOG_DAEMON | LOG_ALERT,
"attempt to root from account: %s", cvs_username
);
#endif
printf("error 0: root not allowed\n");
error_exit ();

}


Что такое getpwnam - если что можно спросить у гугла, я так и сделал.

Пипец ребята! Честно, мамой клянусь, не рут я!

code:

[root@caesar MainCVS]# cat /etc/passwd|grep marat
marat:x:501:501::/home/marat:/bin/bash



С чего оно взяло??
Короче завёл нового пользователя и теперь работаю в удовольствие, но вопросы остались
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Воевал с CVS | altesack - Записки Старого Мешка | Лента друзей altesack / Полная версия Добавить в друзья Страницы: раньше»