配置使用虚拟用户登录的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
virtual_use_local_privs=YES                         #这个参数一定要加上,虚拟用户和本地用户有相同的权限;否则ftp连上后不能上传,报错550权限拒绝!
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虚拟账号登陆的更多相关文章

  1. Linux下FTP虚拟账号环境部署总结

    vsftp的用户有三种类型:匿名用户.系统用户.虚拟用户.1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.2)本地用户登录:使用系统用户登录,在/etc/passwd中 ...

  2. Linux下FTP虚拟账号环境部署简述

    vsftp的用户有三种类型:匿名用户.系统用户.虚拟用户.1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.2)本地用户登录:使用系统用户登录,在/etc/passwd中 ...

  3. FTP虚拟账户

    部署一个内网FTP服务器 为了解决公司员工文件存储和下载的需求.要求部署内部FTP服务器,员工可以通过自己的账号的权限对FTP进行操作. 1)公司公共文件可以通过匿名下载 2)公司财务部.商务部.行政 ...

  4. vsftp 搭建及虚拟账号配置

    安装vsftpd yum -y install vsftpd chkconfig vsftpd on 修改主配置文件 vi /etc/vsftpd/vsftpd.conf # 允许匿名用户登陆,登陆时 ...

  5. 007.FTP虚拟用户访问

    一 虚拟用户优点 可对每个用户进行单独设定权限. 每个用户单独配置文件,单独指定主目录,而不能访问系统的其它资源. 注意:虚拟用户目录和本地用户访问目录不冲突. 二 配置虚拟用户步骤 添加虚拟用户口令 ...

  6. Linux 下 FTP虚拟用户的使用配置

    Linux下FTP虚拟用户的使用配置 Linux的FTP服务支持3种用户: 1.匿名帐户 2.本地帐户 3.虚拟用户 为什么要使用虚拟用户: 匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用 ...

  7. 已知服务器ftp的账号密码,求解数据库表的内容

    一开始觉得这两个是完全不相干的东西,直到出现了这样一个问题,对方网站只有ftp的账号密码,并且能正常访问到代码.但是当需求了解注册人数的时候,后台没有显示,只能到数据库去找,这时怎么找呢? 原来是可以 ...

  8. Oracle BIEE 环境迁移所导致的账号登陆问题的解决

    系统版本 系统版本:11G(11.1.1.9) 问题描述 将系统数据(RPD.catalog等数据)迁移到另一环境(版本同样为11G)后,老系统weblogic控制台中添加的账户在新系统(仪表盘)中无 ...

  9. 基于Lumisoft.NET组件的SMTP账号登陆检测

    在邮件处理的方面,Lumisoft.NET可以说是非常不错的一个选择,我在前面几篇文章中都介绍过这个组件. 基于Lumisoft.NET组件开发碰到乱码等一些问题的解决 基于Lumisoft.NET组 ...

随机推荐

  1. Virtual DOM 算法

    前端 virtual-dom react.js javascript 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM ...

  2. Web.Config的配置

    1.配置数据库连接 在<connectionStrings></connectionStrings>节中完成,配置过程需指定四个属性server(DataSource)服务器名 ...

  3. Upgrade custom workflow in SharePoint

    Experience comes when you give a try or do something, I worked in to many SharePoint development pro ...

  4. 内置对象Clob对从数据库表中取的字符大对象CLOB类型的列值进行读取操作

    package readclobDemo.bao; import java.io.IOException; import java.io.Reader; import java.sql.Clob; i ...

  5. JQuery怎么实现页面刷新后保留鼠标点击样式的方法

    今天抽空研究了下鼠标点击添加样式的方法.为了防止忘记,写篇文章算是备份吧. $('ul.main-menu li a').each(function(){     if($($(this))[0].h ...

  6. PHPExcel中open_basedir restriction in effect的解决方法

    用PHPExcel做导出execl的时候发现在本地没有问题,但是把网站传到租用的服务器的时候就报错,具体如下: Warning: realpath() [function.realpath]: ope ...

  7. Effective Java 46 Prefer for-each loops to traditional for loops

    Prior to release 1.5, this was the preferred idiom for iterating over a collection: // No longer the ...

  8. mac:ssh登陆总是需要输入钥匙串密码解决

    方法1: finder -> 左上角:前往->按住option建->多出一个资源->KeyChains->第一个文件夹(删除掉次文件夹) 然后重启即可 方法2: ssh- ...

  9. 关于zend_parse_parameters函数

    PHP_FUNCTION(set_time_limit) { long new_timeout; char *new_timeout_str; int new_timeout_strlen; if ( ...

  10. ubuntu16.04 安装网易云音乐

    最爱的播放器 网易云音乐 哈哈,刚刚折腾了双系统,立马开始了软件安装. 网易云音乐从官网下载对应的 64 位版本,我下载的是 netease-cloud-music_1.0.0_amd64_ubunt ...