Как заставить логирование работать в PureFTPd в контейнере Alpine Docker?
Я использую gists / pure-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, но я не вижу журналов на стандартный вывод. Большая часть документации / справки в Интернете говорит, что журналы отправляются в 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-сервер работать, по крайней мере.
Обновление 2
Я исправил проблему пользователей Unix. Я считаю, что это было связано с тем, как я создавал пользователей - у них не было оболочки или группы. Я решил это, и теперь кажется, что этот режим аутентификации работает.
Ответы по аспекту регистрации все еще ищутся.