Estou tentando configurar o vsftpd em uma caixa amazon ami de 64 bits, micro camada livre.
Seguindo estas instruções, link , consegui colocar meu ftp em funcionamento com sucesso. Desde que eu crie manualmente o diretório home dos usuários, ele funciona perfeitamente.
É necessário ter ajuda para configurar automaticamente os diretórios pessoais dos usuários. para o cliente ftp
A próxima coisa que queria fazer era configurar um script para configurar automaticamente o diretório inicial dos usuários, em vez de ter que fazê-lo manualmente. Eu encontrei alguma documentação aqui, link Eu passei horas tentando para que isso funcione sem sucesso.
Como a documentação do nicks, modifiquei meu arquivo /etc/pam.d/vsftpd
para incluir as seguintes linhas de código.
#%PAM-1.0
session optional pam_keyinit.so force revoke
# Auth in MySQL
auth requisite pam_mysql.so user=vsftpd-ro passwd=readonly host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=0
auth required pam_script.so onerr=success dir=/etc/pam-script**
Agora minha confusão
Devido à minha falta de conhecimento, não tenho certeza se devo criar o arquivo de script ou se ele já está incluído na caixa e só preciso modificá-lo. Eu estou supondo que quando Nick postou seu exemplo, ele criou o script em uma caixa de 32 bits, mas na parte inferior de seu artigo ele fala sobre um script de 64 bits.
De qualquer forma, quando tento navegar para $ cat /etc/pam-script/pam_script_auth
, não encontro nem o script nem o pam-script
dir. Se eu tentar criá-lo, recebo um erro de permissão negada, a menos que eu use sudo vi /etc/pam-script/pam_script_auth
Agora, mais uma vez, não tenho certeza se a criação manual do script é a maneira correta de fazer isso. Não tenho certeza se devo fazer o download de algo, ou se em uma caixa de 64 bits, se o script deles já existe, onde é necessário modificá-lo. De qualquer forma, depois de criá-lo manualmente e dar permissões ao script para ler, escrever, executar, acabo com isso.
$ cat /etc/pam-script/pam_script_auth
pam_script_auth
#!/bin/sh
if [ ! -d "/opt/ftp/$PAM_USER" ]; then
/usr/bin/env mkdir /opt/ftp/$PAM_USER
/usr/bin/env chown ftp:ftp /opt/ftp/$PAM_USER
fi
Agora posso fazer o login na caixa, mas parece não conseguir autenticar no banco de dados e não estou vendo onde o arquivo do usuário foi criado. Eu estou supondo que isso é algo errado com o script. Eu também encontrei a seguinte questão do ubuntu, onde nick respondeu a uma pergunta semelhante.
link
Obrigado antecipadamente.
EDITAR
Foi sugerido pelo jayhendren para usar pam_mkhomedir.so ao invés de um script.
Por favor, corrija-me se estiver errado, mas a minha suposição é configurar o meu /etc/pam.d/vsftpd
como assim
#%PAM-1.0
session optional pam_keyinit.so force revoke
# Auth in MySQL
auth requisite pam_mysql.so user=vsftpd-ro passwd=readonly host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=0
session required pam_mkhomedir.so skel=/opt/ftp/ umask=0022 debug
account required pam_mysql.so user=vsftpd-ro passwd=readonly host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=0
Alguém poderia confirmar essa configuração?