Решено было поднять ftp сервер.
Из большинства софта было решено использовать vsftpd, прочитав о нем немного принялся редактировать конфигурационный файл, который лежит в директории /etc/vsftpd/vsftpd.conf
Вот что у меня получилось.
PHP код:
#разрешить вход дядюшке anonymous yes or no?
anonymous_enable=NO
#
#разрешить загрузку анонимному пользователю да или нет?
anon_upload_enable=NO
#
#Разрешать или нет создовать папки?
anon_mkdir_write_enable=NO
#
#Разрешать именять файлы или другие действия да или нет?
anon_other_write_enable=NO
#
#разрешать вход локальным пользователям.
local_enable=YES
#
#Разрешить любую форму команды записи FTP.
write_enable=YES
#
#Максимальная скорость передачи данных для зарегистрированных пользователей
#По-умолчанию = 0 (неограниченная).
local_max_rate=7200
#
#umask по умолчанию для локальных юзеров 077. Возможно хочется
#изменить на 022, (022 используется в большинстве ftpd's)
#local_umask=022
#
#Разрешить мессаги каталогов - сообщения которые выдаются при
#входе в определенную директорию.
dirmessage_enable=YES
#
#логить аплоад/даунлоад
xferlog_enable=YES
#
#убедиться что PORT коннекты вылазят из порта 20 (ftp-data).
connect_from_port_20=YES
#
#Можно изменять автоматически владельца на аплоадных файлах
#естественно использовать тут root'а я не советую
#chown_uploads=YES
#chown_username=ftpadmin
#
#в какой файл пишем логи
xferlog_file=/var/log/vsftpd.log
#
#можно увидеть лог и в формате xferlog
#xferlog_std_format=YES
#
log_ftp_protocol=YES
#таймаут на открытую && неиспользующуюся сессию.
idle_session_timeout=600
#
#таймаут на коннект по порту data.
#data_connection_timeout=120
#
#рекомендуется создать в системе пользователя, которого
#ftp стервер будет использовать как конкретно униженного в своих
#правах юзверя.
#nopriv_user=ftpsecure
#
#Это для распознования асинхронных ABOR запросов.
#не рекомендуется по соображениям безопасности (этот код довольно
#сложный (и проверять его разработчикам видимо влом Demige)).
#А если его не включить то возможно старые FTP клиенты вас не поймут.
#async_abor_enable=YES
#
# По-умолчанию сервер будет разрешать ASCII режим, но фактически
# игнорировать реквест. Здесь можно разрешить использовать ASCII.
# Есть ппасность при вкл. ascii_download_enable что некоторые нехорошие
# юзеры будут тормозить вашу машину командой "SIZE /большой/файл" в
# ASCII режиме.
# Эти ASCII опции разбиты на аплоад и даунлоад т.к. вы можете возжелать
# разрешить ASCII-аплоады (для работы аплоад скриптов), без
# разрешения даунлоада из-за DoS риска по командам SIZE и ASCII.
# Поддержка ASCII на стороне клиента должна быть.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# Баннер при входе
ftpd_banner=Welcome to Z-tec FTP.
#
# файл неразрешенных email адресов.
# юзабельно для защиты от DoS атак.
deny_email_enable=YES
# (умолчальный файл)
banned_email_file=/etc/vsftpd/vsftpd.banned_emails
#
# можно разрешить некоторым юзерам chroot()ится в их домашний каталог
# если chroot_local_user=YES, тогда это будет листинг юзеров, которые
# не могут chroot()ится.
# если chroot_local_user=NO то в ftp_chroot_list прописывается какого
# виртуального юзера куда chroot`ить
chroot_list_enable=YES
chroot_list_file=/ftp_chroot_list
#
# для локальных юзверей
chroot_local_user=YES
#passwd_chroot_enable=YES
#secure_chroot_dir=/var/ftp/pub
# можно разрешить опцию "-R" для встроенного ls.
# по умолчанию запрещена т.к. сильно загружает систему на больших сайтах
# Тем не менее некоторые FTP-клиенты такие как "ncftp" и "mirror" предпологают
# ее наличие. Так что лучше ее включить.
ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd whith two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Подскажите как грамотно задать полномочия пользователям для доступа. Нужно чтобы один пользователь имел полные права, на добавление файлов, создание папок в /var/ftp/pub, а другой только на чтение.
Создал одного пользователя, для пробы.
adduser <имя> появилась папка в /home/<имя> я сменил его домашнюю папку на /var/ftp/pub с помощью команды usermd -d /var/ftp/pub/ высветилось
PHP код:
usermod -d /var/ftp/pub <имя>
<имя> homedir /var/ftp/pub or its parent directory conflicts with a
defined context in /etc/selinux/targeted/contexts/files/file_contexts,
/usr/sbin/genhomedircon will not create a new context. This usually indicates an incorrectly defined system account. If it is a system account please make sure its login shell is /sbin/nologin.
Понятно что это касается что данный каталог принадлежит пользователю ftp.
Еще один трабл как запретить <имя> выходить из своего каталога? Например дальше pub чтобы ни как? А то гуляет по всей файловой системе. И запись файлов не возможна в свой каталог.