vsftpd - PAM - MySQL e pam_mkhomedir para criar diretórios

11

Eu tenho usado com sucesso o vsftpd com usuários virtuais conectando com o PAM ao meu banco de dados do mysql. Agora eu gostaria de automatizar a criação de diretórios de usuários com conexão vsftpd bem sucedida.

Aqui está a configuração do /etc/pam.d/vsftpd:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth required pam_mysql.so verbose=1 user=root passwd=mypass host=localhost db=mydb table=mytable usercolumn=username passwdcolumn=password crypt=3
account required pam_mysql.so verbose=1 user=root passwd=mypass host=localhost db=mydb table=mytable usercolumn=username passwdcolumn=password crypt=3
session required pam_mkhomedir.so skel=/home/skel/ umask=0022 debug

Adicionar pam_mkhomedir agora apenas mostra que não é possível criar o diretório sem outras mensagens em qualquer log. Então, obviamente, não está aplicando. Há mais alguma coisa que eu precise?

Meu /etc/vsftpd/vsftpd.conf:

# No ANONYMOUS users allowed
anonymous_enable=NO
# Allow 'local' users with WRITE permissions (0755)
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES

# define a unique user on your system which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=vsftpd
chroot_local_user=YES
listen=YES

# here we use the authentication module for vsftpd to check users name and passw
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES
# here the vsftpd will allow the 'vsftpd' user to login into '/home/vsftpd/$USER directory
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
download_enable=NO

force_local_data_ssl=NO
force_local_logins_ssl=NO

# PASV - passive ports for FTP 
pasv_enable=YES
pasv_min_port=14000
pasv_max_port=14100

Eu vi uma postagem dizendo que eu preciso disso no meu vsftpd.conf, então eu também tentei isso:

session_support=YES

Mas agora parece não ser mais autenticado como mostram os registros:

Mar 24 00:46:16 ip-10-212-239-40 vsftpd[1962]: pam_keyinit(vsftpd:session): Unable to look up user "user1"
Mar 24 00:46:16 ip-10-212-239-40 vsftpd[1962]: pam_mkhomedir(vsftpd:session): User unknown.

Isto é mesmo se eu já criei o diretório. Agora ninguém pode entrar.

Alguma idéia?

    
por Tom 24.03.2013 / 02:21

2 respostas

0

Para que as pesquisas de usuários pelo módulo PAM sejam bem-sucedidas, é necessário ativar o módulo NSS para MySQL em nsswitch.conf(5) . nss_mysql é seu amigo.

    
por 24.03.2013 / 13:31
0

Você pode tentar usar pam_script - é um módulo pam que permite executar scripts de shell arbitrários depois que uma sessão de usuário é aberta (entre outros).

Você pode encontrar pam_script aqui: link . Ele também pode ser instalado via gerenciadores de pacotes, pelo menos eu consegui instalá-lo através do apt-get.

Tenha cuidado, pois o vsftpd parece ter alguns problemas com o pam_script pelo menos quando ele nega a autenticação, veja minha pergunta não resolvida: vsftpd congela após falha na autenticação pam_script . No entanto, no seu caso, não deve ser um problema.

    
por 21.02.2015 / 22:02