匿名用户默认的登陆目录为/var/pub/
本地用户默认的登陆目录为/home。家目录
服务端安装vstftp服务和lftp服务,客户端安装lftp服务
yum install vsftpd lftp -y
systemctl start vsftpd 打开服务
systemctl enable vsftpd 开机启动服务
lftp用于客户端
打开防火墙:systemctl start firewalld
firewall-cmd --get-services 查看防火墙可以允许的服务
firewall-cmd --permanent --add-service=ftp 给防火墙加ftp
firewall-cmd --reload 更改防火墙加载
firewall-cmd --list-all 查看防火状态
在客户端lftp 服务端ip 连接服务端查看能否连接成功
二、vsftpd配置文件的修改
vim /etc/vsftpd/vsftpd.conf(更改后需要重置服务)
12 anonymous_enable=YES|NO 是否允许匿名用户连接(更改为NO后尝试用客户端登陆)
16 local_enable=YES|NO 是否允许本地用户连接(更改为NO后本地用户无法登陆)
19 #write_enable=NO 是否允许本地用户读写
20 write_enable=YES
29 anon_upload_enable=YES 是否允许匿名用户上传(修改完,上传时会有553报错,提示目录权限太小,需要修改目录权限和所属组)
33 #anon_mkdir_write_enable=YES 是否允许匿名用户可以新建目录
34 anon_mkdir_write_enable=YES
35 anon_other_write_enable=YES 是否允许匿名用户删除
36 anon_world_readable_only=NO 是否允许匿名用户下载不属于自己的文件,默认YES不允许,如果需要改为NO
50 chown_uploads=YES 匿名用户使用的用户身份修改
51 chown_username=westos 修改为student
52 anon_max_rate=102400 允许匿名用户上传的速度
53 max_clients=2 允许同时连接的用户数
54 anon_root=/westos 设定匿名用户的家目录
23 local_umask=077 修改本地用户创建文件的mask值
21 local_root=/westos 设定本地用户的家目录
106 chroot_local_user=NO 是否用户访问上层目录,默认为NO,改为YES的话表示不允许所有本地用户访问上层目录
107 chroot_list_enable=YES 开启这一行表示开启白名单,所有本地用户将不能访问上层目录
108 # (default follows)
109 chroot_list_file=/etc/vsftpd/chroot_list 白名单所在目录
用户登陆的黑白名单
ls /etc/vsftpd/
ftpusers 本地用户永久黑名单
user_list 本地用户临时黑名单,当修改配置文件后会变成白名单
131 pam_service_name=vsftpd
132 userlist_enable=YES
133 userlist_deny=NO 加入这条参数后临时黑名单将变成白名单
134 tcp_wrappers=YES
三、虚拟用户的建立
1 cd /etc/vsftpd/
2 vim users 在/etc/vsftpd/下面新建一个文件user,user里包含需要建立的虚拟用户的名称和密码
3 db_load -T -t hash -f users users.db 将这个文件加密曾db文件
4 cd /etc/pam.d/ ftp配置文件的默认认证方式为pam方式,在此文件下查看该认证方式的规则
5 vim vsftpd 系统认证文件
6 vim usercheck 我们自己编写一个认证文件在/etc/oam.d/中
####account required pam_userdb.so db=/etc/vsftpd/users#####
####auth required pam_userdb.so db=/etc/vsftpd/users#####
认证文件规则
7 vim /etc/vsftpd/vsftpd.conf 修改配置文件
8 systemctl restart vsftpd.service 重启服务
虚拟用户家目录分别指定
131 pam_service_name=usercheck 指定pam认证的文件
132 guest_enable=YES
133 guest_username=westos 虚拟用户登陆位置
134 userlist_enable=YES
135 local_root=/var/ftpdir/$USER 指定每个虚拟用户登陆所在目录为单独的属于自己的目录(需要给虚拟用户建立目录mkdir /var/ftpdir/user1 -p)
136 user_sub_token=$USER 告诉配置文件规则
137 #userlist_deny=NO
138 tcp_wrappers=YES
设置虚拟用户权限
####在配置文件中修改
129 pam_service_name=usercheck
130 guest_enable=YES
131 guest_username=westos
132 userlist_enable=YES
133 local_root=/var/ftpdir/$USER
134 user_sub_token=$USER
135 user_config_dir=/etc/vsftpd/user_conf 虚拟用户权限配置文件在/etc/vsftpd/user_conf目录下
136 #userlist_deny=NO
137 tcp_wrappers=YES
在/etc/vsftpd/user_conf目录下vim一个user1文件。里面给到上传权限anon_upload_enable=YES
关闭配置文件中给匿名用户的读写执行权限
修改匿名用户目录的权限为775,修改所在组为ftp
测试
4.虚拟用户分开管理(VIP)
将匿名用户所有的权限关闭
修改配置文件,给指定虚拟用户特殊权限
user_config_dir=/etc/vsftpd/user_conf ##user_conf 目录中的文件相当于“VIP名单”
在/etc/vsftpd/user_conf目录下建立文件,以虚拟用户名命名
修改虚拟用户登陆家目录权限
chmod 755 /var/ftpdir/test1/test1dir ##家目录权限改为755
更改虚拟用户登陆家目录组
chgrp student /var/ftpdir/test2/test2dir ##家目录指定组为student