vsftp的虚拟账户方式


我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

1 安装vsftp (yum方式安装)
  yum install vsftpd -y

2 添加虚拟用户口令文件
[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
bobyuan #用户名
123456 #密码
markwang #用户名
123456 #密码

3 生成虚拟用户口令认证文件
将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
[root@CentOS5 /]#rpm -qa |grep db4-utils
如果没有则需要单独安装
[root@CentOS5 /]#rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm
下面使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

4 编辑vsftpd的PAM认证文件
在/etc/pam.d目录下,
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

注:64位系统需使用下面的两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

5 配置vsftpd.conf(设置虚拟用户配置项)
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #关闭匿名用户【该项已存在,需修改】
guest_enable=YES #开启虚拟用户
guest_username=vftpuser #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
user_config_dir=/etc/vsftpd/vsftpd_config_dir #用户配置文件的目录

6 编辑用户配置文件
vi /etc/vsftpd/vsftpd_config_dir/user1

local_root=/data/ftproot/user1 #【该用户的主目录】
anon_world_readable_only=NO #【下载权限】
anon_upload_enable=YES #【上传权限】
anon_mkdir_write_enable=YES #【创建目录的权限】
anon_other_write_enable=NO #【删除和重命名的权限】

7 启动vsftpd
  /etc/init.d/vsftpd start

8 检查
  ftp 127.0.0.1
  输入用户名密码登录,然后使用put命令上传文件
  put a.txt
  dir检查文件上传成功即可.


你可能感兴趣的:(linux,vsftpd,虚拟账户)