Я ищу программное обеспечение FTP-сервера для Debain 6.0 Squeeze, которое может поддерживать следующее:
Есть ли у кого-нибудь рекомендации по программному обеспечению, которое может сделать большую часть (если не все) этого?
По большей части это довольно просто. Либо pure-ftpd-mysql
или vsftpd
+libpam-mysql
может использовать (с достаточной настройкой) таблицу MySQL для «виртуальных» пользователей, chroot их в их собственный небольшой каталог и настраивать входящие файлы ' umask
биты. Оба могут использовать SSL (FTPS) и могут либо заставить клиентов использовать SSL, либо разрешить как небезопасный, так и безопасный вход в систему.
Разрешения потребуют некоторой смазки локтя. Очевидным решением было бы использовать разрешения файловой системы unix:
В зависимости от ваших требований есть две возможные проблемы.
Меньшая проблема - это различие между «записью» и «перезаписью». Кто-то с правом записи в файл может стереть все данные в файле (обрезать их) и заполнить файл совершенно другими данными. Я не уверен, позволяет ли это протокол FTP (возможно, возобновить со смещения 0?). Кто-то без права записи в файл, но с правом записи в каталог может удалить файл и создать новый файл с тем же именем.
Более серьезная проблема заключается в том, что создание и удаление файлов - это единый флаг. Если вам нужны файлы, которые пользователи не могут удалить, в том же каталоге, что и файлы, которые они могут удалить, самым простым решением будет создание двух пользователей: ftpuser
пользователь, с которым будут сопоставляться все ваши виртуальные пользователи, и ftpnodel
пользователь, которому будут принадлежать все файлы, которые вы не хотите удалять, но с которыми никто не входит в систему. Затем вы устанавливаете липкий бит для всех каталогов, chown
файлы, которые невозможно удалить ftpnodel
.
В этом решении вы должны использовать биты rwx «пользователя» для управления обычным доступом к файлам и каталогам, а биты rwx «мира» (также известные как «другие») для управления доступом к файлам ftpnodel.