vsftp 虚拟用户困难求助
系统环境:CentOS-6.2_64vsftp版本:vsftpd-2.2.2-6.el6_0.1.x86_64
想做一个资源共享的平台,考虑到FTP的效果比较简单,所以搭建起来了,不过要想对权限进行进一步的细化,就必须要用上vsftpd的虚拟用户功能了,之前没接触过虚拟用户,实现起来发现遇到很多小问题,请大伙儿帮忙看看是哪里的问题。
使用到的目录
ftp的主目录
# ls -l
总用量 98
dr-xr-xr-x. 2 root root 40968月 31 14:41 bin
dr-xr-xr-x. 5 root root 10248月 31 14:43 boot
drwxr-xr-x 17 root root 37009月3 09:45 dev
drwxr-xr-x.75 root root 40969月3 09:45 etc
drwxr-xr-x. 5 virtusers virtusers40969月3 21:14 ftp
ftp相关用户的passwd文件
/etc/passwd
vsftpd:x:501:501::/home/vsftpd:/sbin/nologin
virtusers:x:502:502::/ftp:/sbin/nologin
相关配置:
# grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=vsftpd
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=欢迎来到FTP资源共享平台!
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtusers
user_config_dir=/etc/vsftpd/vconf
virtual_use_local_privs=YES
# more /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
# more /etc/vsftpd/virtusers
adminftp
adminadmin
admin
admin122
st
adminst
三个虚拟用户的配置文件
# more admin
local_root=/ftp
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=yes
anon_mkdir_write_enable=yes
pam_service_name=vsftpd
chroot_local_user=YES
# more adminftp
local_root=/ftp/bknet
download_enable=yes
anon_upload_enable=yes
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no
# more st
local_root=/ftp
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=yes
anon_mkdir_write_enable=yes
pam_service_name=vsftpd
chroot_local_user=YES
#
错误提示
命令: USER st
响应: 331 Please specify the password.
命令: PASS *******
响应: 530 Login incorrect.
日志分析
Sep4 07:25:07 ftp vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Sep4 07:25:07 ftp vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=st rhost=192.168.201.245
Sep4 07:25:07 ftp vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user st
Sep4 07:25:07 ftp vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user st
我想咨询一下,我已经在虚拟用户的目录下设置了st这个用户但登录的时候还是提示没有这个用户,是不是我哪里的文件修改的有问题,不胜感激。谢谢
认证失败,用户名没找到
你是用文件做为虚拟账号
有没有生成虚拟账号数据库
db_load -T -t hash -f/etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
做这个操作 感谢你的帮助,不过,这个操作已经做过,有生成virtusers.db 这个文件,我刚才又重新做了一次,效果依旧,Selinux也关了。回复 2# cryboy2001
本帖最后由 cryboy2001 于 2014-09-04 10:23 编辑
在/etc/pam.d/vsftpd
只保留最后两句,试试
看看这个文件在不在
/lib64/security/pam_userdb.so 非常感谢,虚拟用户可以用了,现在继续完善权限。回复 4# cryboy2001
是不是OS本身没有这个用户,而只给ftp添加了这个用户,
页:
[1]