Я строю на gists / чистый ftpd для создания экземпляров FTP-сервера в контейнере Docker. Вот моя команда запуска сервера, которую я взламываю:
# Args explained at http://debianhelp.co.uk/pureftp.htm
#
# -P -Force the specified IP address in reply to a PASV/EPSV/SPSV command
# -S -Connections are accepted on the specified IP and port
# -l -This is the authentication type, in the form "protocol:path"
# -E -Only allow authenticated users (if you wanted anonymous only you would substitute -e).
# -j -If the user doesn't have a home directory create it at first login.
# -R -Disallow the usage of the chmod command.
# -B -Instruct the standalone server to start in the background
# -g -Custom pidfile location (defaults to /var/run/pure-ftpd.pid)
# -d Verbose logging
/usr/sbin/pure-ftpd \
-S $PUBLIC_HOST,21 \
-P $PUBLIC_HOST \
-p $MIN_PASV_PORT:$MAX_PASV_PORT \
-g $PID_FILE \
-l unix \
-d \
-E \
-j \
-R \
-B
Я использую unix
система разрешений, поскольку мне не нужна отдельная система базы данных пользователей. Однако я создаю пользователей, и они, похоже, не работают, поэтому я хочу увидеть журналы из PureFTPd, а сервер просто не хочет вести за меня какие-либо журналы.
Я пробовал использовать учетную запись пользователя через SSH в том же окне, и это работает, поэтому я знаю, что имя пользователя и пароль действительны.
Играя с этим, я удалил -B
переключение фона в PureFTPd, но я не вижу логов на stdout. Большая часть документации / справки в Интернете говорит, что журналы отправляются в syslog, но это не работает в этом контейнере, поскольку это довольно простая сборка Alpine. Я попытался добавить Rsyslog, осознавая, что «побочные проекты» - это отнимает время, и получил следующее:
rsyslogd: imklog: невозможно открыть журнал ядра (/ proc / kmsg): операция не разрешена.
rsyslogd: активация модуля imklog.so не удалась [попытка v8.31.0 http://www.rsyslog.com/e/2145 ]
Так что я отказался от этого и попробовал --with-altlog /var/log/ftp.log
, и это тоже ничего не написало.
Я мог бы переключиться на Ubuntu, где syslog (и т. Д.), Вероятно, доступен и работает по умолчанию, но я не хочу делать это только для того, чтобы обнаружить, что ведение журнала в PureFTPd в любом случае не работает. Есть простое исправление?
Хотя кажется бессмысленным (для моего случая использования) дублировать пользовательскую систему Unix с виртуальной базой данных пользователей FTP, я пробовал это, и это работает. Вместо того -l unix
, Я использую -l puredb:/etc/pureftpd/pureftpd.pdb
. По крайней мере, это заставит мой FTP-сервер работать.
Я исправил проблему пользователей Unix. Я считаю, что это произошло из-за того, как я создавал пользователей - у них не было оболочки или группы. Я решил это, и теперь этот режим аутентификации, кажется, работает.
Ответы на вопрос о ведении журнала все еще ищутся.