; #默认NO YES表示允许修改上传文件的权限和所有者
chown_username=wang #文件所有者
chown_upload_mode=0644 #文件权限
- 设置Linux系统用户登录ftp服务器
local_enable=YES #是否允许本地用户登录,YES表示允许
write_enable=YES #是否允许本地用户上传文件,YES表示允许
local_umask=022 #指定系统用户上传文件的默认权限对应umask
- 将系统用户映射为一个指定的账号
guest_enable=YES #所有系统用户都映射成某一个guest用户
guest_username=ftp #配合上面选项才生效,指定guest用户
local_root=/ftproot #指定guest账号登录进来映射的目录
#设置每个用户都拥有独立的配置
user_config_dir=/etc/vsftpd/conf.d/ 每个用户独立的配置文件目录 这里可以针对不同的用户放不同的配置
范例: 让所有的系统用户映射指定guest用户
服务器端配置
[root@CentOS8 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=ftp
local_root=/ftproot
[root@CentOS8 ~]# useradd bob
[root@CentOS8 ~]# passwd bob
[root@CentOS8 ~]# mkdir ftproot/
[root@CentOS8 ~]# touch test1
客户端:
[root@CentOS8 ~]# ftp 10.0.0.11
Connected to 10.0.0.11 (10.0.0.11).
220 (vsFTPd 3.0.3)
Name (10.0.0.11:root): bob
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,0,0,11,172,77).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Oct 21 03:46 test.1
226 Directory send OK.
ftp>
范例:映射登录的用户为guest用户,并使用独立的家目录
服务端:
#创建tom和bob两个用户
#修改服务器配置文件
[root@CentOS8 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES 所有系统用户都映射成guest用户
guest_username=ftp 配合上面选项才生效,指定guest用户
local_root=/ftproot 指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ 每个用户独立的配置文件目录
#创建存放tom和bob独立配置文件的目录
[root@CentOS8 ~]# mkdir /etc/vsftpd/conf.d/
#生成tom和bob的独立配置文件
[root@CentOS8 conf.d]# echo "local_root=/ftproot_bob" > /etc/vsftpd/conf.d/bob
[root@CentOS8 conf.d]# echo "local_root=/ftproot_tom" > /etc/vsftpd/conf.d/tom
#重启服务
[root@CentOS8 ~]# systemctl status vsftpd.service
#创建对应的文件目录
[root@CentOS8 ~]# mkdir /ftproot_bob /ftproot_tom
[root@CentOS8 ftproot_bob]# touch bob.test
[root@CentOS8 ftproot_tom]# touch tom.test
客户端测试:
[root@CentOS8 ~]# ftp 10.0.0.11
Connected to 10.0.0.11 (10.0.0.11).
220 (vsFTPd 3.0.3)
Name (10.0.0.11:root): bob
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,0,0,11,222,234).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Oct 21 05:37 bob.test
226 Directory send OK.
ftp>
- 禁锢系统用户
??禁锢所有系统用户在家目录中:
#不允许用户随便切换目录,只能在家目录中
chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢
此时ftp会把对应用户的家目录作为根目录,如果这个家目录存在写权限则登录的时候会提示错误相关错误信息。
访问ftp服务器可以通过三种类型的账号进行访问:
-
匿名用户:ftp、anonmous,共享目录在/vat/ftp下
-
系统用户:例如linux的自身的账号,默认进入的就是用户的加目录
-
虚拟账号:专用于ftp服务的账号,虚拟账号:给对应服务使用的账号,不在操作系统上的账号
- 日志
vsftpd默认使用的就是wu-ftp的日志格式
#wu-ftp 日志:默认启用
xferlog_enable=YES #启用记录上传下载日志,此为默认值
xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog #可自动生成, 此为默认值
#vsftpd日志:默认不启用
dual_log_enable=YES 使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log 可自动生成, 此为默认值
- 提示信息:
(1)登录前提示信息
方法一:
ftpd_banner="welcome to mage ftp server"
方法二:将提示信息存放到一个文件中
banner_file=/etc/vsftpd/ftpbanner.txt
(2)目录访问提示信息
dirmessage_enable=YES #此为默认值,开启这个选项后,在对应目录中创建指定文件就实现了提示信息
message_file=.message #信息存放在指定目录下.message ,此为默认值,只支持单行说明
- PAM模块实现用户访问控制
??pam是一个可插拔的配置模块,利用pam可以控制