Linux之ftp

ftp

文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。

基础设置部署

1.设置内核配置
vim /etc/sysconfig/selinux
将selinux设置为disabled
重启生效

2.安装服务
服务端安装vsftpd
客户端安装lftp

服务端
systemctl start vsftpd
firewall-config ##打开图形,选择允许ftp服务
firewall-cmd --list-all ##查看火墙信息
Linux之ftp_第1张图片
此时火墙允许ftp工作

客户端
systemctl start lftp

ftp服务

ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id解析:
500 ##文件系统权限过大 把写权限去掉
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小

服务配置文件内容

每次配置完文件后,重启vsftpd服务

匿名用户

<匿名用户登陆>
anonymous_enable=YES|NO #匿名用户是否可以登陆(第12行)
在这里插入图片描述
在这里插入图片描述

<匿名用户上传>
write_enable=YES (第19行)
anon_upload_enable=YES ##允许匿名用户上传,但是pub目录对其他用户的权限需要修改(第29行)

chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
在这里插入图片描述
Linux之ftp_第2张图片
Linux之ftp_第3张图片

<匿名用户家目录修改>
anon_root=/direcotry ##家目录改变后lftp进入到的路径改变(自己写入)
在这里插入图片描述
Linux之ftp_第4张图片
Linux之ftp_第5张图片

<匿名用户上传文件默认权限修改>
anon_umask=xxx(自己写入)
在这里插入图片描述
Linux之ftp_第6张图片

666-022=644

<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO(自己写入)
在这里插入图片描述
Linux之ftp_第7张图片

<匿名用户下载>
anon_world_readable_only=YES|NO #设定参数值为NO表示匿名用户可以下载(自己写入)
在这里插入图片描述
Linux之ftp_第8张图片

<匿名用户删除>
anon_other_write_enable=YES|NO
在这里插入图片描述
Linux之ftp_第9张图片

<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
Linux之ftp_第10张图片
在这里插入图片描述
Linux之ftp_第11张图片

uid变成了student用户的uid

<设定匿名用户上传文件的权限>
chown_upload_mode=0644(自己写入)
这条写入上面的匿名用户默认建立目录权限就失效了
Linux之ftp_第12张图片
Linux之ftp_第13张图片

<最大上传速率>
anon_max_rate=102400 ##单位为byte,102400为100k/s

<最大链接数>
max_clients=2 ##同时最多允许几个用户同时连接

本地用户

注意:本地用户是指服务端拥有的用户

<本地用户登陆>
local_enable=YES|NO

<本地用户写权限限制>
write_enable=YES|NO

<本地用户家目录修改>
local_root=/directory

<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
cd /这些命令不再生效
chroot_local_user=YES
chmod u-w /home/* ##去除家目录所有的写权限,否则会报500权限过大错误

用户黑白名单是针对根目录的
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

<限制本地用户登陆>
vim /etc/vsftpd/ftpusers ##用户黑名单(优先级最高,一旦用户出现在这里,就登陆不了)
vim /etc/vsftpd/user_list ##用户临时黑名单

用户白名单设定
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO

设定参数后/etc/vsftpd/user_list变成用户白名单,只在名单中出现的用户可以登陆ftp

ftp虚拟用户

ftp虚拟用户的设定 创建虚拟帐号身份
vim /etc/vsftpd/xuni ##文件名称任意,里面写入用户名加密码
dzh1
123
dzh2
123
dzh3
123
Linux之ftp_第14张图片
db_load -T -t hash -f /etc/vsftpd/xuni /etc/vsftpd/xuni.db

指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。
-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码
hash就是使用hash码加密

db_load -T -t hash -f /etc/vsftpd/xuni xuni.db 前提就是在linux下配置好Vsftp环境确保db_load命令可以使用就是将用户文本信息文件转换为db数据库并使用hash加密。

Linux之ftp_第15张图片

vim /etc/pam.d/xunicheck ##文件名称任意
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
pam_service_name=xunicheck ##/etc/pam.d/xunicheck
guest_enable=YES
在这里插入图片描述
虚拟帐号身份指定
guest_username=jsl ##以本地用户jsl的身份登陆
chmod u-w /home/jsl
Linux之ftp_第16张图片
虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER

user_sub_token=$USER
Linux之ftp_第17张图片
建立目录
Linux之ftp_第18张图片

虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
Linux之ftp_第19张图片
mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高

测试:
Linux之ftp_第20张图片

你可能感兴趣的:(Linux之ftp)