Задача:
Установить FTP сервер, выделив публичную папку для анонимных пользователей (только чтение) и пользовательские директории (чтение - запись).
vsftpdvsftpd - Very Secure FTP Daemon или Очень Защищенный FTP Демон, является одним из самых простых в конфигурировании и наиболее часто используемым FTP сервером. vsftpd обслуживает ftp серверы debian, redhat, ubuntu и прочих крупных компаний. Благодаря предельной простоте настройки, поднятие ftp сервера с помощью vsftpd редко занимает более 5 - 10 минут.
Установка vsftpdУстановите vsftpd для вашего дистрибутива:
Для Debian-based систем (Ubuntu):
apt-get install vsftpdДля RedHat-based систем (Fedora, CentOS)
yum install vsftpdКонфигурирование vsftpdКонфигурирование vsftpd осуществляется редактированием файла
/etc/vsftpd/vsftpd.conf. Комментариев (при минимальном знании английского) обычно достаточно, чтобы разобраться что к чему:
- anon_root - директория для анонимных пользователей (/var/ftp/ по умолчанию в большинстве дистрибутивов)
- anonymous_enable - разрешить доступ анонимным пользователям?
- local_enable - разрешить доступ локальным пользователям?
- write_enable - разрешить запись?
- anon_upload_enable - разрешить запись анонимным пользователям?
Таким образом, можно отредактировать эти записи в конфиге следующим образом (не стоит стирать остальные опции если вы не знаете, что они делают:
#Разрешаем гостевой доступ
anonymous_enable=YES
#
# Разрешаем доступ локальным пользователям
local_enable=YES
#
# Разрешаем запись
write_enable=YES
#
# Запрещаем запись анонимным пользователям
anon_upload_enable=NO
#
# Директория по умолчанию, для гостей:
anon_root=/var/ftpИтог:
все гости попадают в /var/ftp
все пользователи указавшие логин и пароль входа в систему попадают в свою домашнюю директорию, к примеру пользователь vasya попадет после логина в /home/vasya
Примечания, для систем использующих SELinux (RedHat, Fedora,…)Следующие политики, по умолчанию выключенны:
- allow_ftpd_anon_write запись анонимным пользователям
- allow_ftpd_full_access полный доступ
- allow_ftpd_use_cifs разрешить расшаривание сетевых-windows папок
- allow_ftpd_use_nfs разрешить расшаривание NFS
- ftp_home_dir разрешить пользователям доступ до домашних директорий
Для разрешения политики, используйте:
setsebool -P переменная 1например
setsebool -P ftp_home_dir 1разрешит доступ через ftpd к домашним директориям.
ключ -P обеспечивает сохранение настройки после перезагрузки
Для публичных папок, доступных всем пользователям для записи, следует изменить политику следующим образом:
chcon -t public_content_rw_t /var/ftp/incomingВзято
отсюда.