Linux FTP 虚拟用户

一:介绍用虚拟用户登陆的好处

FTP 好多时候可以用虚拟用户来登陆,为什么要使用虚拟用户???


    匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来 实现.但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下, 保证FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法.

下面,我们就一起来学习,该怎样在Linux下配置FTP服务器的虚拟用户.

开始配置前,让我们先大概了解下FTP虚拟用户的工作原理:

虚拟用户,顾名思义,并不是一个合法的Linux系统帐户,但是他可以用来登陆该系统上运行的FTP服务器.

        当用户在连接上FTP服务器后,会被要求输入用户名和密码.FTP服务器在拿到这个用户名和密码后,会调用相应的PAM认证模块对,和系统中的 FTP认证文件进行相比较.如果该用户名和密码与FTP认证文件中的某条记录相符,就通过认证,然后该帐户就被映射成一个Linux下的本地帐户,然后根 据使用该本地帐户对FTP资源进行访问.否则则断开该连接请求.,了解了FTP虚拟用户的工作原理后,我们就可以开始配置FTP虚拟用户了.


二、安装虚拟用户

    最简单的办法就是yum安装:

安装:yum install pure-ftpd -y

启动:/etc/init.d/pure-ftpd start


wKioL1aEo3SS6k4MAAAVSigB-c8466.png

修改配置文件:

vim /etc/pure-ftpd/pure-ftpd.conf

注释打开

#PureDB                        /etc/pure-ftpd/pureftpd.pdb

其中stevenhu是虚拟用户名,-u是设置使用哪个系统用户,-d是设置ftp目录

创建用户:pure-pw useradd stevenhu -u nobody -g nobody -d /data/steven

执行改命令后,会提示两次输入密码。然后使用下面的命令生成数据库

          pure-pw mkdb  (不可忘记)

wKioL1aEpIWTV4S4AAAh1QsVSaU076.png


重启pure-ftpd: /etc/init.d/pure-ftpd restart


三、测试

wKioL1aEpgjTIyknAAAeFmpV20A904.png


测试的时候发现报530,认证错误


查看日志

wKiom1aEpoOgLhMZAABbE_FxbsU338.png

最后经过查证:MinUID                     500

1. 将配置文件的MinUID设置成48,保存重启pure-ftpd
2. 创建新ftp用户,uid大于500的,重新分配虚拟用户uid和gid

修改配置文件之后,重启服务,重新登陆ok

Linux FTP 虚拟用户_第1张图片


四、ubuntu 安装

    ubuntu安装与centos有一些区别,不再详细介绍,请参考下面链接

http://wiki.ubuntu.org.cn/Pure-ftpd%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE#.E5.8C.BF.E5.90.8D.E7.99.BB.E5.BD.95.E5.8A.9F.E8.83.BD


五、建立虚拟用户


创建用户:

            pure-pw useradd  user1 -u nobody -g nogroup -d /data/ftp/user1dir

生成数据文件:

    pure-pw mkdb


pure-pw useradd 添加用户

pure-pw userdel 删除用户

pure-pw usermod 修改用户

pure-pw show 查看用户详细信息

pure-pw list 查看所有用户设置

pure-pw mkdb 生成数据文件