vsftpd - PAM - MySQL 和 pam_mkhomedir 创建目录

Tom*_*Tom 11 mysql permissions ftp pam vsftpd

我已经成功地将 vsftpd 与通过 PAM 连接到我的 mysql 数据库的虚拟用户一起使用。现在我想通过成功的 vsftpd 连接自动创建用户目录。

这是 /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
Run Code Online (Sandbox Code Playgroud)

现在添加 pam_mkhomedir 只是表明它无法创建目录,任何日志中都没有其他消息。所以它显然不适用。还有什么我需要的吗?

我的/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
Run Code Online (Sandbox Code Playgroud)

我在 vsftpd.conf 中看到一个帖子说我需要这个,所以我也试过这个:

session_support=YES
Run Code Online (Sandbox Code Playgroud)

但现在它似乎不再进行身份验证,如日志所示:

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.
Run Code Online (Sandbox Code Playgroud)

即使我已经创建了目录,也是如此。现在谁也进不去。

有任何想法吗?

abb*_*bbe 0

为了成功通过 PAM 模块进行用户查找,您需要在nsswitch.conf(5). nss_mysql是你的朋友。