简介
想要在linux上搭建ftp服务是十分简单的,所以此贴并不在于安装服务,而是怎样去调试,使得我们对ftp的配置更加详细、娴熟,也是作为一个记录贴
配置
yum install -y vsftpd // 不多说,安装ftp服务(系统版本: Centos7)
在vsftpd安装完成后,会在etc
目录下生成一个目录/etc/vsftpd
- ftpusers // FTP黑名单 不受配置影响 比user_list优先级高
- user_list // 取决于 userlist_enable userlist_deny 配置
- vsftpd.conf // ftp 服务配置文件
- vsftpd_conf_migrate.sh // 配置文件迁移脚本
vsftpd.conf
默认配置
- 匿名用户使用的登录名为ftp或anonymous,口令为空;
- 匿名用户不能离开匿名用户家目录;
- 本地用户的登录名为本地用户名,密码为此用户的密码;
- 本地用户可以在自己的家目录中进行读写操作;
- 本地用户可以离开家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载
- /etc/vsftpd/ftpusers 中的本地用户禁止登录
匿名用户
anonymous_enable=YES # 是否启用匿名用户
no_anon_password=YES # 匿名用户login事不询问口令
anon_upload_enable=(YES/NO) # 匿名用户上传权限
anon_world_readable_only=(YES/NO) # 匿名用户下载权限
anon_mkdir_write_enable=(YES/NO) # 匿名用户的创建文件夹权限
anon_other_write_enable=(YES/NO) # 匿名用户对文件和文件夹的删除和重命名权限
注: 匿名用户下载使用的是 nobody 用户,所以相应的other需要有R权限才能被下载。
wirte_enable=YES # 全局设置,是否允许写入(无论是匿名用户还是本地用户,如果要启用上传权限,就要开启此配置)
anon_root=(none) # 匿名用户主目录
// umask = 022 时,新建的目录 权限是755,文件的权限是 644
// umask = 077 时,新建的目录 权限是700,文件的权限时 600
anon_umask=(077) # 匿名用户上传文件时的掩码,反掩码
chown_uploads=YES # 所有匿名上传的文件的所属用户都会被更改为chown_username所指定的用户名
chown_username=whoever # 匿名上传文件所属的用户名
本地用户
write_enable=YES # 上传权限(全局设置,删除,重命名
local_umask=077 # 本地用户上传的文件umask值,和anon_umask规则一致
local_root=/home/username # 当本地用户登录后,将登陆到指定目录下,默认为用户的家目录
user_config_dir=/etc/vsftpd/userconf # 设置用户配置文件所在的目录,当配置了该选项后,用户登录服务器,服务器就会自动到这个目录下读取与当前用户名相同的文件,并根据文件中的配置命令,对当前用户进行跟进一步的配置
download_enable=YES # 用户的下载权限,默认为YES,如果设置为NO,那么所有的下载请求都会被拒绝
chroot_local_enable=YES # 如果设置为YES,本地用户将被锁定在其主目录
chroot_list_enable=YES # 如果启动这项配置,那么所有在chroot_list_file中的用户都不能更改主目录。如果激活,那么会提供一个本地用户的列表(chroot_list),在此文件中的用户将被锁定在他们的主目录。
chroot_list_file=/etc/vsftpd/chroot_list # 指定限制的用户文件
其他配置
ascii_upload_enable=YES/NO # 设置是否启用ASCII模式上传数据
ascii_download_enable=YES/NO # 设置是否启用ASCII模式下载数据tcp_wrappers=YES/NO # 是否控制主机访问,如果为YES,vsftpd会检查/etc/hosts.allow 与 /etc/hosts.deny
userlist_enable=YES/NO # 是否启用userlist文件
userlist_deny=YES/NO # 决定vsftpd.user_list文件中的用户是否能够访问FTP服务器。若设置为YES,则vsftpd.user_list文件中的用户不允许访问FTP,若设置为NO,则只有vsftpd.user_list文件中的用户才能访问FTP。
userlist_file=/etc/vsftpd/user_list # 控制用户访问ftp的文件
accept_time=60 # 设置超时时间
listen_port=21 # FTP服务器建立连接所监听的端口
ftp_data_port=20 # 在PORT下,FTP数据连接所用端口
pasv_enable=YES/NO # FTP是否启用被动模式
listen=YES/NO # 设置ftp服务器是否以standalone模式运行
max_clients=0 # 设置ftp服务器允许的最大连接数