Forum Webscript.Ru

Программирование => Теория, алгоритмы и стандарты => Тема начата: Ancient от 17 Января 2003, 02:37:22

Название: Доступ к master.passwd через web
Отправлено: Ancient от 17 Января 2003, 02:37:22
Кто-нибудь придумал какой-нибудь нормальный способ доступа к файлами типа master.passwd через web сервер? Например в комплекте perl есть для этого спец. модуль... А с php приходится очень сильно извращаться...
Название: Доступ к master.passwd через web
Отправлено: Stas от 17 Января 2003, 03:14:37
Uzh ne pro eto-li ty govorish\' :
http://pear.php.net/package-info.php?pacid=128
File_Passwd

http://pear.php.net/package-info.php?pacid=131
File_HtAccess
Название: Доступ к master.passwd через web
Отправлено: Ancient от 18 Января 2003, 14:08:38
Посмотрел. Спасибо за ссылку, только это немного другое. Подобный класс я уже написал сам, но вот проблема: для его работы необходимо чтобы веб-сервер имел права доступа к файлам с паролями, а этого в реальной жизни не бывает.

Так вот и вопрос как не нарушая безопасности системы через веб администрировать пользователей? Я нашел выход, но охото более красивого и логичного решения...
Название: Доступ к master.passwd через web
Отправлено: Stas от 19 Января 2003, 00:32:29
a kak nashet paroli cherez MySQL  pol\'zuias\' ENCRYPT()  ?

U nas v providere tak delaiut ;)..

Teoria vobshem takaia, ty cherez PHP vsio v MYSQL delaesh\', a v systeme est\' cron kotoryi naprimer kazhdye 15 minut tebe sinhroniziruet tvoi passwd file..

Chto-to tipo togo :
#!/sbin/sh
MYSQL="/usr/local/mysql/bin/mysql -s -u passwd -h sqlserver dbname"

MY_QRY=\'
SELECT users.login,uid,name,"/bin/false"
FROM users ORDER BY users.login;\'

echo $MY_QRY | $MYSQL >> /tmp/.sink.passwd
if [ "$?" != 0 ]; then
   exit 1
fi

cat /tmp/.sink.passwd | awk -F\\t \'
{
 print $1 ":x:" $2 ":500:" $3 ":/export/home/" $1 ":" $4
}
\' >> /etc/passwd.tmp

MY_QRY=\'
SELECT users.login,password
FROM users
ORDER BY users.login;
\'

echo $MY_QRY | $MYSQL >> /tmp/.sink.shadow
if [ "$?" != 0 ]; then
   exit 1
fi

cat /tmp/.sink.shadow | awk -F\\t \'
{
   print $1 ":" $2 ":11001::::::"
}
\' >> /etc/shadow.tmp

rm -f /tmp/.sink.shadow

mv /etc/passwd.tmp /etc/passwd
mv /etc/shadow.tmp /etc/shadow
######################

Chio dumaesh\' ??
Название: Доступ к master.passwd через web
Отправлено: Stas от 19 Января 2003, 00:34:08
tam pravda nado eshio i usera tipa "separator" vvesti, chtoby systemye accounty ne trogat\'...
Название: Доступ к master.passwd через web
Отправлено: Ancient от 20 Января 2003, 00:45:23
Этот вариант я рассматривал. Не самое хрошое решение, т.к. после того как пользователь изменит пароль через веб, он на самом деле изменится только минут через 15. Это главный недостаток.

Мне подсказали более красивый вариант - работа через pipe, но тоже...
Название: Доступ к master.passwd через web
Отправлено: Stas от 21 Января 2003, 19:02:41
ia tut nedavno ofigennuiu shtuku nashel.. nazyvaetsia poppassd .

Demon, visit na 106/tcp i slushaet esli kto-nit\' ne hochet passwd pomeniat\'. Dolzhen vvesti svoi pravil\'nyi parol\' a potom novyi dvazhdy.. Potom on tam uzhe pod rootom k passwd obrashaetsia... proga na C.

http://echelon.pl/pubs/poppassd.html

Pomoemu klassnaia vesh\'.
Название: Доступ к master.passwd через web
Отправлено: AliMamed от 21 Января 2003, 19:17:33
[off]не подскажете как бы мне побольше дырочку в системе безопасности своего сервера проковырять?[/off]
Название: Доступ к master.passwd через web
Отправлено: Tronyx от 21 Января 2003, 21:06:36
-> Теория, алгоритмы и стандарты
Название: Доступ к master.passwd через web
Отправлено: Yukko от 22 Января 2003, 02:59:09
Открой файлы и дай доступ по телнету, пусть сами ковыряют :).
Цитировать
через веб администрировать пользователей
Ни один НОРМАЛЬНЫЙ администратор не администрирует своих пользователей через веб-интерфейс. Разве что только по ОСОБОЙ необходимости.
Название: Доступ к master.passwd через web
Отправлено: Stas от 22 Января 2003, 19:22:38
AliMamed
chto znachit dyrochku..

Mogu posporit\' chto sami pol\'zovalis\' webmail\'om ili meniali svoi parol\' u vashego providera cherez web.

Programma - open source. Nado zalez\' v C i sdelai chtob tol\'ko useram osoboi gruppy paroli meniat\' bylo mozhno. Nu a chio srazu vsio obserat\'. Ia poka luchshe sposoba ne nashel.

Yukko,
a ty slyshal o korporativnyh mnogofunctsional\'nyh EXTRANET.. chio ty dumaesh\', tam paroili nel\'zia meniat\' cherez web ?  A  pro SSL slyshal ? nado zhe... A v providere kak liudiam davat\' vozmozhnost\' parol\' pomeniat\' ? Po emailu ? ili po telefonu ??
Название: Доступ к master.passwd через web
Отправлено: Ancient от 23 Января 2003, 01:49:44
Yukko

Ребята, какая разница для какого администратора я это делаю. Все равно - нормальный он или нет, но сделать надо. Вот и вопросы, как более безопасно это делать...

PS Вообще-то это часть диплома.
Название: Доступ к master.passwd через web
Отправлено: Yukko от 23 Января 2003, 12:57:37
Цитировать
как более безопасно это делать...

Через веб передавать по SSL, однозначно.
Stas  а аутентификация у провайдера не через его базу паролей производится, что в операционной системе, а через ту которая на mysql хранится. С вебмейлом работал, и у прова пароль менял, я понимаю, что иногда надо делать и вебадмин и вебмейл, но перед тем, как отправить свой пароль в нет твой браузер спрашивает хочешь ли ты сделать это, с провом ты работаешь по выделенке, либо по дайлапу и перехватить твой пароль можно в 90% случаев только аппаратными средствами, с вебмейлом хуже, там пароль передается дальше по нету, но это уже твои проблемы.
Ancient Почитай первый пост Стаса, там где он советует через MySQL делать, давать скриптам напрямую что-то делать в системе ничего нельзя.
Название: Доступ к master.passwd через web
Отправлено: Ancient от 23 Января 2003, 16:42:00
У этого алгоритма есть недостаток.

Мне подсказывали попробовать работать с pipe. Вешаем скрипт для обработки pipe, потом просто кидаем в pipe данные и все. Никаких задержек. Как вам такой вариант?