В прежние времена мы могли легко настроить ftp-сервер с анонимным доступом для загрузки, тогда как после загрузки файла пользователь не мог видеть, удалять или изменять загруженные файлы.
Я пытаюсь установить что-то подобное сейчас в CentOS 6.2 или ubuntu 11.10, но мы передаем конфиденциальные данные, которые должны быть через соединение sftp / scp / ftps. Я пробовал использовать chrooted sftp-соединение, однако из-за того, как работают права доступа к папке и файлам linux, если у пользователя есть доступ на запись в папку, он может удалить файл в этой папке, несмотря ни на что.
Кто-нибудь еще настраивал аналогичную среду? Я бы хотел, чтобы у них было имя пользователя или комбинация имени пользователя / пароля, которая будет регистрироваться, чтобы мы знали, кто какой файл загрузил, однако после загрузки файла у них больше не будет доступа для удаления или изменения файла.
Спасибо!
* Edit: Я писал чепуху, так как я не прочитал вопрос должным образом, в этом посте была идиотэктомия в полевых условиях, теперь, надеюсь, это немного относится к вопросу .. ;-)
Я думаю, что рекомендуемыми шагами было бы использование некоторого традиционного ftp-сервера активного / пассивного типа с портом 21, который обеспечивает уровень SSL / TLS поверх стандартного пользовательского ftp dropbox старой школы.
vsftpd это пример ftp-сервера, который может быть настроен на использование ssl и поддерживает низкоуровневая конфигурация прав пользователей позволяя создать аутентифицированную ftp-систему в стиле Dropbox.
Я бы создал отдельных пользователей для этого ftp-проекта с помощью shell / sbin / nologin и добавил их в текстовый файл, который можно было бы передать vsftpd как разрешенным локальным пользователям.
вы также можете установить следующие параметры, чтобы ограничить пользователей в соответствии с вашими требованиями
#If set to NO, all directory list commands will give permission denied.
dirlist_enable NO
#If set to NO, all download requests will give permission denied.
download_enable NO
#If activated, all non-anonymous logins are forced to use a secure SSL connection
force_local_data_ssl YES
#If activated, all non-anonymous logins are forced to use a secure SSL
force_local_logins_ssl YES
#obfusciate, probably not needed given directory listing restrictions
hide_ids YES
# allow users with no shell to access ftp, but you have to disable these users via the
#vsftpd local permitted users list, not via /etc/passwd
check_shell NO
Вам также необходимо будет использовать некоторые конфигурации для принудительного выполнения требования только для записи, без удаления, для этого, вероятно, потребуется указать список соответствующих команд, используя параметры конфигурации cmds_allowed и cmds_denied.
Есть список команд ftp с кратким объяснение здесь;, возможно, вам придется попробовать метод проб и ошибок, поскольку они не тестируются в полевых условиях ...
#
chmod_enable No
#something like the following...
#cmds_allowed=PASV,RETR,QUIT,PUT,USER,PORT,SYST,QUIT,STOR,CWD,PWD
#add any other commands that allow READ or DELETE, or rename, etc.
cmds_denied=DELE,GET,LIST,MDTM,MKD,NLST,RETR,RMD,RNFR,RNTO,APPE
доступны различные документы, в которых обсуждаются возможные настройки vsftpd здесь - http://viki.brainsware.org/?en/cmds_allowed
Вы можете полностью настроить команды, доступные из полного списка здесь; https://calomel.org/vsftpd.html
объяснение команд здесь; http://www.nsftools.com/tips/RawFTP.htm
Никогда не использовал его, но в ProFTPD есть модуль sftp. Видеть http://www.proftpd.org/docs/contrib/mod_sftp.html#Usage который показывает, как вы можете ограничить его, как и FTP (например, Limit DELE
пункты для предотвращения удаления).