码迷,mamicode.com
首页 > 其他好文 > 详细

ftp虚拟账号登陆

时间:2016-06-15 14:10:45      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

 

 

配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理。

废话不多说,这里记录下ftp虚拟账号登陆的部署过程及其中遇到的问题:

 

yum安装vsftpd

[root@i-f658wfj6 ~]#yum install -y vsftpd

[root@i-f658wfj6 ~]#yum install -y db4

 

线上安装后的环境记录

[root@cms_web vsftpd]# pwd

/etc/vsftpd

设置登陆ftp的虚拟账号文件

[root@cms_web vsftpd]# cat vuser_passwd.txt

hqsbcms

hqsbcms_2016@huanqiu.com

 

将账号文本写入数据库

[root@cms_web vsftpd]#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

 

[root@cms_web vsftpd]# ls

chroot_list  user_list    vsftpd.conf.bak  vuser_passwd.db

ftpusers     vsftpd.conf  vsftpd_conf_migrate.sh  vuser_conf       vuser_passwd.txt

 

[root@cms_web vsftpd]# cat vsftpd.conf|grep -v "^#"

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

 

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

userlist_file=/etc/vsftpd/user_list

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftp/vuser_conf

 

[root@cms_web vsftpd]# cat chroot_list

hqsbcms

[root@cms_web vsftpd]# cat vuser_conf/hqsbcms

local_root=/hqsb/ftp/

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

 

[root@cms_web vsftpd]# cat /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 pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

 

 

[root@cms_web vsftpd]# ll -d /hqsb

drwxrwxrwx 5 ftp ftp 4096 Jun 11 17:01 /hqsb

[root@cms_web vsftpd]# ll -d /hqsb/ftp

drwxrwxrwx 2 ftp ftp 4096 Jun 15 12:10 /hqsb/ftp

 

[root@cms_web vsftpd]#/etc/init.d/vsftpd start

 

上面部署好之后,使用虚拟账号hqsbcms登录(即使在系统上不存在的账号,/etc/passwd里没有的,借助于宿主账号 ftp)

 

 

 

但是发现了一个严重问题:

就是登录后,发现还是登陆到ftp的默认目录/var/ftp/下面了

 

 

 

原因:

ftp的shell类型是/sbin/nologin,意思是ftp登陆的时候就只能限制到它的家目录/var/ftp里面了!!

[root@cms_web vsftpd]# cat /etc/passwd|grep ftp

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

解决办法:

把宿主账号改成nobody!

[root@cms_web vsftpd]# cat vsftpd.conf|grep -v "^#"

.....

guest_username=nobody    【由ftp改为nobody

.....

 

重启vsftpd服务

[root@cms_web vsftpd]#/etc/init.d/vsftpd restart

 

把nobody的家目录改成/hqsb/ftp

[root@cms_web vsftpd]# usermod -d /hqsb/ftp nobody

 

[root@cms_web vsftpd]# cat /etc/passwd|grep nobody

nobody:x:99:99:Nobody:/hqsb/ftp:/sbin/nologin

 

修改ftp目录权限

[root@cms_web vsftpd]# chown -R nobody.nobody /hqsb/ftp

[root@cms_web vsftpd]# chmod -R 777 /hqsb/ftp

 

这样修改后,就可以使用虚拟账号hqsb登陆ftp后,就可以正常进去/hsqb/ftp目录下了

 

ftp虚拟账号登陆

标签:

原文地址:http://www.cnblogs.com/kevingrace/p/5587140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!