FTP серверов под линукс есть несколько. После быстрого гугления я остановился на ProFTPD. Вот тут есть пример толкового конфига с внятными пояснениями. Есть и рекоммендаци на случай, если надо открыть доступ "снаружи". Я как раз этим конфигом и воспользовался- мне и надо-то, что анонимный доступ на чтение в одну директорию и только из локалки.
Вот что получилось.
Устанавливаем сервер
На вопрос, как запускать, я ответил- через initd, НЕ standalone. Много клиентов у этого сервера не будет.
sudo apt-get install proftpd
Правим /etc/shells
sudo vim /etc/shells
Туда добавляем:
/bin/false
Создаем директорию для обмена
sudo mkdir /home/FTP-shared
Создаем юзера
sudo useradd userftp -p password -d /home/FTP-shared -s /bin/false
Пароль password надо заменить на реальный.
Создаем директории для скачки/закачки
sudo mkdir /home/FTP-shared/public
sudo mkdir /home/FTP-shared/upload
Назначаем права
sudo chmod 755 /home/FTP-shared
sudo chmod 755 /home/FTP-shared/public
sudo chmod 777 /home/FTP-shared/upload
Правим конфиг
sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo vim /etc/proftpd/proftpd.conf
Туда добавляем (перед секцией Global):
<Limit LOGIN> AllowUser userftp DenyALL </Limit> <Directory /home/FTP-shared> Umask 022 022 AllowOverwrite off <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> DenyAll </Limit> </Directory> <Directory /home/FTP-shared/public/*> Umask 022 022 AllowOverwrite off <Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD> DenyAll </Limit> </Directory> <Directory> /home/FTP-shared/upload/> Umask 022 022 AllowOverwrite on <Limit READ RMD DELE> DenyAll </Limit> <Limit STOR CWD MKD> AllowAll </Limit> </Directory> <Anonymous /home/FTP-shared> User userftp Group nogroup UserAlias anonymous userftp MaxClients 8 "Max number of clients reached (%m)" DisplayChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Правим /etc/fstab
sudo vim /etc/fstab
Туда добавляем путь, который будет доступен по FTP:
/stuff/books /home/FTP-shared/public none bind 0 0
Итоги
После рестарта сервера (не FTP, а компьютера), анонимному пользователю (и пользователю userftp) будет доступно содержимое директории /stuff/books- только на чтение из /home/FTP-shared/public. Также, пользователь userftp сможет создавать директории и файлы в /home/FTP-shared/upload.
Проверено с помощью Total Commander и проги в телефоне.