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 база данных - 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-а и т.д. Отладка 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*. Уже используем на нашем хостинге в течение месяцев без проблем. Не более чем через неделю я этих патчов опубликую. О 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 This sentence claims to be an Epimenides paradox, but it is lying.
pgpeVCegzg8nJ.pgp
Description: PGP signature