同步操作将从 baoke/Linux学完就忘系列 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
存储:
DAS:Direct Attached Storage
接口类型:"block"
设备:SATA,SAS,IDE,SCSI,USB;
NAS:Network Attached Storage
接口类型:"file"
协议:CIFS(samba),NFS(Network File System)
RPC:Remote Procedure Call
SAN:Storage Area Network
接口类型:"block"
协议:ISCSI(IP-SAN),FCSAN,FCoE,...
应用层:
ftp,...
文件服务:ftp,cifs/nfs
ftp:file transfer protocol,文件传输协议;
两类连接:
命令连接:传输命令
数据连接:传输数据
两种模式:
主动模式:PORT
Server:20/tcp连接客户端的命令连接使用的端口向后的第一个可用端口;
被动模式:PASV
Server:打开一个随机端口,并等待客户端连接
PAM:Pluggable Authenticate Module
认证框架:库,高度模块化;
协议:C/S
Server:
Windows:Serv-U,IIS,Filezilla
开源:wuftpd,proftpd,pureftpd,vsftpd(Very Secure FTP daemon),...
Client:
Windows:ftp,Filezilla,CuteFTP,FlashFXP,...
开源:lftp,ftp,Filezilla,gftp,...
vsftpd is a Very Secure FTP daemon. It was written completely from scratch.
URL:
SCHEME://username:password@HOST:PORT/PATH/TO/FILE
路径映射:
用户家目录:每个用户的URL的'/'映射到当前用户的家目录;
vsftpd以ftp用户的身份运行进程,默认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
ftp,anonymous
#查看默认用户
grep ^ftp /etc/passwd
yum install -y vsftpd
systemctl start vsftpd
#查看21端口
ss -tnlp
#配置文件权限访问权限
cd /etc/vsftpd/
cp vsftpd.conf{,.bak}
另起一台主机
#默认用户,默认没有密码,提示输入口径的话直接回车
lftp 192.168.147.153 -uftp
ls
#匿名用户登录
lftp 192.168.147.153 anonymous
示例:
cp /etc/issue /var/ftp/pub
cd /var/ftp/pub
#将属主属组改为ftp用户
chown ftp.ftp issue
ll
拥有Linux系统的权限并不代表就拥有了对ftp的操作的权限.还需额外配置vsftpd相关配置文件.
一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集;
程序环境:
主程序:/usr/sbin/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
数据根目录:/var/ftp
Systemd Unit File:/usr/lib/systemd/system/vsftpd.service
配置vsftpd:
用户类别:
匿名用户:anonymous-->ftp,/var/ftp
系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pam.d/vsftpd);
虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd);
用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径间切换;
禁锢用户于其家目录中;
配置文件:/etc/vsftpd/vsftpd.conf
directive value
注意:directive之前不能有多余字符;
匿名用户:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=077 匿名用户的权限掩码
示例,配置匿名用户:
cd /var/ftp
mkdir upload
chown ftp.ftp upload
cd /etc/vsftpd
配置vim vsftpd.conf
:
#允许匿名用户上传
anon_upload_enable=YES
#允许匿名用户创建目录
anon_mkdir_write_enable=YES
#其他写操作权限,删除等
anon_other_write_enable=YES
重启服务:
systemctl restart vsftpd.service
登录ftp操作:
lftp 192.168.147.153 -uftp
cd upload/
#上传
put /etc/issue
#删除目录
rm -rf testdir/
#删除文件
rm issue
系统用户:(以下配置默认都开启)
local_enable=YES 是否允许本地用户访问ftp服务
write_enable=YES 是否允许本地用户拥有写权限,写权限包括上传、创建目录和其他任何权限
local_umask=022 用预设定本地用户创建文件的掩码,所以本地用户创建的文件应该是644,文件666-022=644
示例:
#创建用户和设置密码
useradd fedora
echo 123456 | passwd --stdin fedora
换台主机登录:
#登录
lftp 192.168.147.153 -u fedora
mkdir abc
cd abc
#上传
put /etc/issue
#下载文件到/tmp目录下
get issue -o /tmp
辅助配置文件/etc/vsftpd/ftpusers;
列在此文件中的用户均禁止使用ftp服务;
chroot_local_user=YES
禁锢所有本地用户于其家目录;需要事先去除用户对家目录的写权限;
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
禁锢列表文件中存在的用户于其家目录中;需要事先去除用户对家目录的写权限;
传输日志:
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_sdt_format=YES
守护进程的类型:
standalone:独立守护进程;由服务进程自行监听套接字,并接收用户访问请求;
transient:瞬时守护进程;由受托管方代为监听套接字,服务进程没有访问请求时不启动;当托管方收到访问请求时,才启动服务进程;
CentOS 6:xinetd独立守护进程,/etc/xinetd.d/
CentOS 7:由systemd代为监听;
控制可登陆vsftpd服务的用户列表:
userlist_enable=YES
启用/etc/vsftpd/user_list文件来控制可登陆用户;
userlist_deny=
YES:意味着此为黑名单;
NO:白名单;
上传下载速率(单位bytes):
annon_max_rate=0 匿名用户的上传下载速率
local_max_rate=0 本地用户的上传下载速率
0:为不限制
并发连接数限制:
max_clinets=2000 客户端最大连接数
max_per_ip=50 单ip的最大连接数
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。