On Thu, Aug 20, 2009 at 07:12:32AM +0800, Денис wrote: > Peter Pentchev пишет: > > On Thu, Aug 20, 2009 at 06:33:47AM +0800, Денис wrote: > >> Иван Лох пишет: > >>> On Thu, Aug 20, 2009 at 04:13:16AM +0800, Денис wrote: > >>>> заливать свои сайты пользователи будут через WebDAV скорее всего, ну > >>>> может быть ещё через ftp. список имён-паролей тоже будет лежать у них в > >>>> директории > >>>> > >>>> Так же у пользователей должна быть возможность заливать и запускать > >>>> скрипты и прочую муру. > >>> ^^^^^^^^ > >>>> принадлежать все страницы будут пользователю типа www-data, видимо > >>>> > >>>> вопрос: как по debian way красиво разграничить этим пользователям доступ > >>>> чтобы они друг-другу скриптами странички не портили? (да саму систему от > >>>> этого тоже бы желательно защитить, если это возможно, конечно) > >>> Со скриптами IMHO, никак. Кто помешает скрипту убить _свой_ процесс или > >>> удалить _свой_ файл? > >> Действительно, согласен, будем заводить юзеров > > > > Юзеров можно завести заведомо и без описания их всех в /etc/passwd. > > Одно возможное решение: > > - PostgreSQL база данных > > В чём её выгода супротив /etc/passwd?
Гораздо проще (и надежднее, и меньше риск проснуться без /etc/passwd) добавлять, удалять и модифицировать акаунты автоматически. > > - libnss-pgsql2 чтоб "getent passwd" / getpwnam() и т.д. работали > > - libpam-pgsql чтоб юзеры могут пользовать FTP и SSH > > - отдельные user ID's для разных акаунтов (более чем один username > > per account, может с разными home directory и shell, но один user ID) > > - все юзеры - в одной группе, скажем, hosting > > - все home directories - собственость юзера и той группы > > - все home directories - с правами 701, чтоб никто не смог щупать > > чужих файлов > > - либо готовыми средствами, либо собственноручно создаными программами > > создать chroot-окружение для разных акаунтов; bind mount и > > recursive bind mount - полезние штуки; awk -F: '$1 < 1000' /etc/passwd > > так же. > > - забыть о mod_php; завести libapache2-mod-suphp >= 0.7.1 для поддержки > > chroot-а и т.д. > > Кроме ПХП есть ещё другие языки. я хотел дать пользователям всё что > есть, и питон и перл и разный прочий руби - пускай пользуются, мне не жалко. Python и Perl работают прекрасно через mod_suexec (разумееться, надо #!/usr/bin/blah в начале скриптов, но большинство программистов на "истинных" "скрипт"-языков уже знают, что это надо, и всегда ставлют), так что я попросту забыл о них - никогда не возникали проблемы :) > > Отладка libnss-pgsql2 может быть несколько досадной - nscd глючил > > изрядно и в etch, и в ранных периодов testing-что-попозже-стал-lenny, > > а без nscd база сорвется за минуту (while true { getent passwd }). > > Но однажды отладил, потом проблем нету. > > > > Отладка libpam-pgsql - попроще; нужно только чтобы догадаться, что > > для важных услуг (FTP, SSH) нужно вообще удалить common-auth и > > common-account из /etc/pam.d/*, далее просто. > > > > Я теперь в процессе финального сглажения нескольких патчов, которые > > добавляют к Apache директиву SuexecChrootDir так чтобы mod_cgi, mod_cgid > > и libapache2-mod-fcgid ее использовали, и учут этих модулей чтобы > > подчинялись RLimit*. Уже используем на нашем хостинге в течение месяцев > > без проблем. Не более чем через неделю я этих патчов опубликую. > > Когда оно ещё в дебиан попадёт... ) > > Неужели окупается допиливание апача при том что такого рода хостинг > совсем уже копейки стоит? В нашем случе - окупается :) YMMV. > > О WebDAV не знаю, никогда не пробовал, кроме через mod_dav_svn :) > > А я попробовал - не требует настроек совсем. Просто файл с паролями как > для запароливания директорий подсовываешь ему и всё сразу работает. > Файлы ложатся от имени веб-сервера. > По моему, удобнее фтп для т.н. "простых юзеров". Поддержка в виндах > давно уже встроена и работает лучше фтп мне кажется. Спасибо за рецензию, так может и попробую когда-то. Всего лучшего, Петр -- Peter Pentchev r...@ringlet.net r...@space.bg r...@freebsd.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 "yields falsehood, when appended to its quotation." yields falsehood, when appended to its quotation.
pgpVEieTjv6WU.pgp
Description: PGP signature