vsftpd服务
1.什么是ftp
ftp即文件传输协议, 是internet上仍常用的最老的网络协议
之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法。 ftp服务器的名
称为 vsftpd
2.安装ftp
yum install vsftpd -y
3.启动
systemctl start vsftpd #启动
systemctl stop firewalld #关闭防火墙
systemctl enable vsftpd ##开机自启
4.配置
主动模式配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO ##控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为YES
local_enable=YES ##控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES
local_root=/data/ftp ##当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录
write_enable=YES ##是否允许登陆用户有写权限。属于全局设置,默认值为YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
被动模式配置文件:可参考 https://blog.csdn.net/rockstics/article/details/106824462
禁止root 用户登陆
vim /etc/vsftpd/user_list ##需要userlist_enable=YES
#root
添加本地ftp用户
useradd rock -d /home/rock/##创建rock 用户,家目录为/home/rock
安装lftp/ftp客户端 登陆命令
yum install lftp / ftp
利用linux用户登陆命令如下
lftp rock@ip
ftp ip
无用户登录(匿名登录)
lftp ip ##能登陆并且显示,表示安装成功
vsftpd基本目录说明
/var/ftp ##默认发布目录
/etc/vsftpd ##配置目录
vsftpd服务的配置参数
匿名用户
1)匿名用户设定
anonymous_enable=YES|NO ##匿名用户登陆限制
2)匿名用户上传
write_enable=YES
anon_upload_enable=YES
修改/var/ftp/pub权限
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
3 匿名用户家目录修改
anon_root=/direcotry
在配置文件里面修改家目录为/westos
创建/westos目录,并在里面touch两个子文件,然后lftp登陆,
会发现我们在/westos创建的文件就是在lftp家目录里面修改的文件
4 匿名用户上传文件默认权限修改
anon_umask=022 修改不同权限,用户上传的文件权限不同。
5 匿名用户建立目录
anon_mkdir_write_enable=YES|NO
4 匿名用户下载
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
5 匿名用户删除
anon_other_write_enable=YES|NO
6. 匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
#<最大上传速率>
anon_max_rate&#61;102400
#<最大链接数>
max_clients&#61;2
2)本地用户设定
local_enable&#61;YES|NO ##本地用户登陆限制
write_enable&#61;YES|NO ##本地用户写权限限制
#<本地用户家目录修改>
local_root&#61;/directory
#<本地用户上传文件权限>
local_umask&#61;xxx
#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user&#61;YES
chmod u-w /home/*
用户黑名单建立
chroot_local_user&#61;NO
chroot_list_enable&#61;YES
chroot_list_file&#61;/etc/vsftpd/chroot_list
用户白名单建立
chroot_local_user&#61;YES
chroot_list_enable&#61;YES
chroot_list_file&#61;/etc/vsftpd/chroot_list
#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny&#61;NO
/etc/vsftpd/user_list ##参数设定&#xff0c;此文件变成用户白名单&#xff0c;只在名单中出现的用户可以登陆ftp
3&#xff09;ftp虚拟用户的设定
创建虚拟帐号身份)
vim /etc/vsftpd/redhat ##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/redhat redhat.db
vim /etc/pam.d/redhat ##文件名称任意
account required pam_userdb.so db&#61;/etc/vsftpd/redhat
auth required pam_userdb.so db&#61;/etc/vsftpd/redhat
vim /etc/vsftpd/vsftpd.conf
pam_service_name&#61;redhat 指定pam配置文件
guest_enable&#61;YES 启用虚拟帐号支持
虚拟帐号身份指定&#xff09;
guest_username&#61;ftp 映射虚拟用户身份
chmod u-w /home/ftp
虚拟帐号家目录独立设定&#xff09;
vim /etc/vsftpd/vsftpd.conf
local_root&#61;/ftpuserhome/$USER 对虚拟用户默认末路进行设置
user_sub_token&#61;$USER 安全认证
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g&#43;s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
虚拟帐号配置独立&#xff09;
vim /etc/vsftpd/vsftpd.conf
user_config_dir&#61;/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数&#xff0c;此文件的优先级搞
常见问题&#xff1a;
500权力过大
530认证失败
550无写权限
553权限问题
可参考&#xff1a;https://www.yanning.wang/archives/184.html
f