Назад | Перейти на главную страницу

Какое программное обеспечение FTP-сервера Debian поддерживает мою настройку?

Я ищу программное обеспечение FTP-сервера для Debain 6.0 Squeeze, которое может поддерживать следующее:

Есть ли у кого-нибудь рекомендации по программному обеспечению, которое может сделать большую часть (если не все) этого?

По большей части это довольно просто. Либо pure-ftpd-mysql или vsftpd+libpam-mysql может использовать (с достаточной настройкой) таблицу MySQL для «виртуальных» пользователей, chroot их в их собственный небольшой каталог и настраивать входящие файлы ' umask биты. Оба могут использовать SSL (FTPS) и могут либо заставить клиентов использовать SSL, либо разрешить как небезопасный, так и безопасный вход в систему.

Разрешения потребуют некоторой смазки локтя. Очевидным решением было бы использовать разрешения файловой системы unix:

  • Бит «x» в каталогах позволяет пользователям «входить» в каталог.
  • Бит "r" в каталогах позволяет пользователям отображать каталог
  • Бит «w» в каталогах позволяет пользователям создавать или удалять файлы и подкаталоги.
  • .... если не установлен липкий бит "t", в этом случае они не могут удалить файлы, принадлежащие кому-то другому.
  • Бит "r" в файлах позволяет пользователям читать файл
  • Бит "w" в файлах позволяет пользователям писать в файл

В зависимости от ваших требований есть две возможные проблемы.

Меньшая проблема - это различие между «записью» и «перезаписью». Кто-то с правом записи в файл может стереть все данные в файле (обрезать их) и заполнить файл совершенно другими данными. Я не уверен, позволяет ли это протокол FTP (возможно, возобновить со смещения 0?). Кто-то без права записи в файл, но с правом записи в каталог может удалить файл и создать новый файл с тем же именем.

Более серьезная проблема заключается в том, что создание и удаление файлов - это единый флаг. Если вам нужны файлы, которые пользователи не могут удалить, в том же каталоге, что и файлы, которые они могут удалить, самым простым решением будет создание двух пользователей: ftpuser пользователь, с которым будут сопоставляться все ваши виртуальные пользователи, и ftpnodel пользователь, которому будут принадлежать все файлы, которые вы не хотите удалять, но с которыми никто не входит в систему. Затем вы устанавливаете липкий бит для всех каталогов, chown файлы, которые невозможно удалить ftpnodel.

В этом решении вы должны использовать биты rwx «пользователя» для управления обычным доступом к файлам и каталогам, а биты rwx «мира» (также известные как «другие») для управления доступом к файлам ftpnodel.