最近接触一个项目,客户需要搭建一台FTP服务器。具体要求是:系统采用red hat 6.4 64位操作系统;创建20个ftp用户,这些用户拥有自己独立的工作目录,并且有上传、下载、删除等权限;创建一个ftp管理用户,这个用户拥有管理以上20个ftp用户目录的权限。
仔细一看要求单单使用本地用户设置属组和文件目录权限控制的方法很难实现以上要求,于是想到使用ftp虚拟用户,而且ftp虚拟用户安全性高,不能登录系统,只能访问ftp服务器。
下面开始在自己的虚拟机环境中根据客户的要求搭建ftp服务器。
实验环境:
操作系统:red hat 5.8 64为;
安装软件:vsftpd,db4-utils
建立虚拟用户口令库文件
进入/etc/vsftpd目录,创建vuser_list文件,添加需要的虚拟用户和密码,添加格式是一行用户名,紧跟一行密码,文件中不要有空行,如下,
vi vuser_list admin admin huaxia 123456 chinapay 123456 baofu 123456 albb 123456
2. 生产虚拟用户的口令认证文件
使用db_load命令生成口令认证文件,该文件需放在/etc/vsftpd/目录,注意安装db4-utils软件才能使用db_load命令,
db_load -T -t hash -f vuser_list /etc/vsftpd/vsftpd_login.db
更改认证文件vsftpd_login.db的权限,
chmod 600 /etc/vsftpd/vsftpd_login.db
3. 更改vsftpd的pam配置文件,使其对客户端进行验证时使用生成的虚拟用户认证文件
编辑/etc/pam.d/vsftpd文件,批注所有内容后,添加:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
4. 增加一个系统用户virtuser,用来对应所有的虚拟用户登陆
所有的ftp虚拟用户对应到这个虚拟用户,虚拟用户使用virtuser用户来登陆ftp服务器,
useradd -d /var/ftp/virtuser -s /sbin/nologin virtuser
5. 设置vsftpd主配置文件vsftpd.conf
修改前对vsftpd.conf配置文件进行备份,
在vsftpd.conf配置文件中修改或添加一下内容
vi vsftpd.conf anonymous_enable=NO 禁用匿名用户登录 local_enable=YES pam_service_name=vsftpd 配置vsftpd使用的PAM模块为vsftpd user_config_dir=/etc/vsftpd/vsftpd_user_conf 设置虚拟账户配置文件的主目录
6. 创建虚拟用户的配置文件和工作目录
1>.创建虚拟用户的配置文件
只有创建的虚拟用户的配置文件才能使用ftp虚拟用户,
在/etc/vsftpd/目录下创建vsftpd_user_conf目录,
mkdir vsftpd_user_conf
在vsftpd_user_conf目录下分别创建和虚拟用户口令库文件vuser_list中同名的用户文件,
touch admin touch huaxia touch chinapay touch baofu touch albb
分别编辑虚拟用户配置文件,添加配置信息,管理用户的家目录放在/var/ftp/virtuser/目录下,其他虚拟用户的家目录放在/var/ftp/virtuser/admin目录下,实现admin用户管理其他虚拟用户的目的,
guest_enable=YES local_root=/var/ftp/virtuser/admin 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目 录,虚拟用户登录后的主目录。 guest_username=virtuser anon_world_readable_only=NO 浏览FTP目录和下载 anon_upload_enable=YES 允许上传 anon_mkdir_write_enable=YES 建立和删除目录 anon_other_write_enable=YES 改名和删除文件
2>.创建虚拟用户的工作目录
mkdir -p /var/ftp/virtuser/admin mkdir -p /var/ftp/virtuser/admin/albb mkdir -p /var/ftp/virtuser/admin/baofu mkdir -p /var/ftp/virtuser/admin/chinapay mkdir -p /var/ftp/virtuser/admin/huaxia chown -R virtuser:virtuser /var/ftp/virtuser/
7. 重新启动vsftpd服务,使所有配置文件的设置生效
service vsftpd restart
8.测试是否符合要求
1>.admin用户登录
可以看到其他虚拟用户的目录,
2>.其他虚拟用户登录
本文出自 “xiaozhizh” 博客,请务必保留此出处http://xiaozhizhi.blog.51cto.com/9698292/1612406
原文地址:http://xiaozhizhi.blog.51cto.com/9698292/1612406