所需要求:
真实存在,但不能登陆的用户 对应的虚拟用户
ftp1 vftp1
ftp2 vftp2
vip vvip
vftp1:只能下载
vftp2:只能上传
vvip:即能上传又能下载
下面开始实施步骤:
安装所需软件
yum -y install vsftpd db4 db4-devel
一、创建用户数据库
1.创建用户文本文件---->建立三个账号
vi /etc/vsftpd/ftpvuser.txt
在其中添加三个虚拟账号,一人用户和密码各一行
如:
vftp1 ---用户
vftp1pw ---vftp1密码
2.生成数据库(要事先安装好db4和db4-devel这两个软件包)
db_load -T -t hash -f /etc/vsftpd/ftpvuser.txt /etc/vsftpd/vu.db
3.修改数据库文件访问权限
chmod 600 /etc/vsftpd/vu.db
二、配置PAM文件
vi /etc/pam.d/vsftpd
默认的配置全部注释掉或删除掉,添加两行相应配置字段
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vu
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vu
PS:上面是32位的写法,下面是64位系统的写法:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu
三、创建虚拟账号
普通账号对应系统账号为ftp1,指定主目录为/var/ftp/download
普通账号对应系统账号为ftp2,指定主目录为/var/ftp/upload
特殊账号对应系统账号为vip,指定主目录为/var/ftp/down_up
useradd -d /var/ftp/download -s /sbin/nologin ftp1
useradd -d /var/ftp/upload -s /sbin/nologin ftp2
useradd -d /var/ftp/down_up -s /sbin/nologin vip
chmod -R 500 /var/ftp/download 此目录只允许下载,不能上传
chmod -R 700 /var/ftp/upload 此目录只允许上传,不能下载
chmod -R 700 /var/ftp/down_up 此目录允许上传和下载
四、建立配置文件
1、修改vsftpd.conf 主配置文件
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
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
chroot_local_user=yes
user_config_dir=/etc/vsftpd/vuserconfig
max_clients=300
max_per_ip=10
2、建立虚拟账号配置文件
mkdir /etc/vsftpd/vuserconfig
cat /etc/vsftpd/vuserconfig/vftp1
guest_enable=yes
guest_username=ftp1
anon_world_readable_only=no
anon_max_rate=100000
cat /etc/vsftpd/vuserconfig/vftp2
guest_enable=yes
guest_username=ftp2
anon_world_readable_only=yes
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_max_rate=50000
cat /etc/vsftpd/vuserconfig/vvip
guest_enable=yes
guest_username=vip
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_max_rate=150000
anon_other_write_enable=yes
五、启动vsftpd服务
service vsftpd restart
六、测试略
到此整个实验完成。。。。。。。。。。。。。。。。。。
转载于:https://blog.51cto.com/opsmysql/822563