Como fazer o log funcionar no PureFTPd em um contêiner do Alpine Docker?

1

Estou desenvolvendo o gists / pure-ftpd para criar instâncias do servidor FTP em um contêiner Docker . Aqui está o meu comando de inicialização do servidor, que estou hackeando:

# 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

Estou usando o sistema de permissões unix , pois não preciso do sistema de banco de dados do usuário separado. No entanto, eu estou criando usuários e eles não parecem funcionar, então eu quero ver alguns logs do PureFTPd, e o servidor simplesmente não quer fazer nenhum registro para mim.

Eu tentei a conta de usuário via SSH na mesma caixa, e isso funciona, então sei que o nome de usuário e a senha são válidos.

Ao brincar com isso, eu removi a opção -B background no PureFTPd, mas não vejo nenhum log no stdout. Grande parte da documentação / ajuda em torno da internet diz que os logs são enviados para o syslog, mas isso não está sendo executado neste contêiner, já que é uma construção Alpine bem nua. Eu tentei adicionar o Rsyslog, enquanto estava consciente de que "projetos paralelos" são um desperdício de tempo, e eu tenho isso:

rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog.so failed [v8.31.0 try http://www.rsyslog.com/e/2145 ]

Então eu desisti disso e tentei --with-altlog /var/log/ftp.log , e isso também não foi escrito.

Eu poderia mudar para o Ubuntu, onde o syslog (etc) provavelmente está disponível e em execução por padrão, mas eu não quero fazer isso apenas para descobrir que o registro está quebrado no PureFTPd de qualquer maneira. Existe uma solução simples?

Adendo

Embora pareça inútil (para o meu caso de uso) duplicar o sistema de usuários Unix com um banco de dados de usuários FTP virtual, eu tentei isso e funciona. Em vez de -l unix , eu uso -l puredb:/etc/pureftpd/pureftpd.pdb . Isso faz com que meu servidor FTP funcione, pelo menos.

Atualização 2

Eu consertei o problema dos usuários Unix. Acredito que foi devido a como eu estava criando usuários - eles não tinham um shell ou um grupo. Eu resolvi isso, e esse modo de autenticação agora parece funcionar.

Respostas sobre o aspecto da extração de madeira ainda são procuradas.

    
por halfer 11.05.2018 / 20:13

0 respostas