FTP的工作模式(参考对象是服务端)
FTP(File Transfer Protocol)
文件传输协议,支持FTP协议的服务器叫做FTP服务器
作用:文件的上传和下载
FTP:文件传输协议
软件包:vsftpd
FTP端口:控制端口 21/TCP
数据端口:20/TCP(主动模式才有)
主配置文件:/etc/vsftpd/vsftpd.conf
主动模式
服务端主动去连接客户端
C:客户端 S:服务端
被动模式
服务端等客户端连接
vsftpd相关核心文件和目录
/etc/vsftpd vsftpd软件的主目录
/etc/vsftpd/vsftpd.conf 主配置文件
/var/ftp 默认的共享目录
主配置文件(/etc/vsftpd/vsftpd.conf)
vsftpd配置文件默认位于/etc/vsftpd目录下
vsftpd启动时会自动寻找.conf结尾的文件,使用这些文件启动服务
配置文件的一般格式:选项=值(中间没有空格),#开头的行会被当成注释
anonymous_enable=YES #是否允许匿名登录
local_enable=YES #是否允许本地用户登录
write_enable=YES #是否可写
vsftpd支持的登录方式
匿名用户登录
一般用于下载服务器,不需要输入用户名和密码
默认的共享路径是/var/ftp
anonymous_enable=YES //允许匿名登录
anon_upload_enable=YES //匿名用户可以上传
anon_mkdir_write_enable=YES //匿名用户可以创建目录
chown_uploads=YES //是否改变匿名用户上传文件的所有者
chown_username=whoever //是否改变匿名用户上传文件的所有者为whoever
本地用户登录
使用系统账号和密码登录FTP(/etc/passwd)
前期准备:
1、关防火墙
2、关SeLinux
3、配置静态IP
4、配置yum源
修改配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁止匿名登录
local_enable=YES //允许本地用户登录
write_enable=YES //允许本地用户上传
local_umask=022 //上传文件的权限掩码
chroot_local_user=NO //禁止用户访问根目录
chroot_list_enable=YES //白名单
chroot_list_file=/etc/vsftpd/chroot_list //白名单的路径
创建白名单
vim /etc/vsftpd/chroot_list
重启服务
systemctl restart vsftpd
虚拟用户登录
使用独立的账号和密码登录FTP服务器
NFS
Network File System 网络文件系统
作用:解决Linux之间的文件共享,可以共享某个目录给目标主机
搭建前的准备
1、检查防火墙
2、检查SeLinux
3、配置静态IP
4、配置yum源
环境:
客户端:192.168.10.141
服务端:192.168.9.120
服务端和客户端都要做的步骤
1、查看软件包是否安装
[root@ops14 vsftpd]# rpm -qa | grep nfs
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.54.el7.x86_64 #NFS的主程序
nfs4-acl-tools-0.3.3-17.el7.x86_64
[root@ops14 vsftpd]# rpm -qa | grep rpcbind
rpcbind-0.2.0-44.el7.x86_64 #提供数据通信用的RPC协议
2、如果没有对应的软件包,安装
yum install -y nfs-utils rpcbind
查看软件相关的文件
rpm -ql nfs-utils
/etc/sysconfig/nfs 服务启动脚本
/sbin/mount.nfs 挂载
/sbin/umount.nfs 取消挂载
/usr/sbin/exportfs 管理命令
/usr/sbin/showmount 查看共享资源
服务端的配置
例子:
服务器共享/nfstest目录给所有的客户端,权限是只读
1、创建共享目录
mkdir -pv /nfstest
2、创建一个文件
echo “Hello NFS” > /nfstest/file1
3、vim /etc/exports
#要共享的目录 要共享给谁(权限:ro只读,rw读写)
/nfstest *(ro)
4、重启服务
[root@zhoukai ~]# systemctl restart nfs-server.service
[root@zhoukai ~]# systemctl reload nfs-server.service
5、查看共享资源
showmount -e 192.168.9.120
客户端的配置
1、检查软件是否安装
rpm -qa | grep nfs
rpm -qa | grep rpcbind
2、如果未安装,则安装软件包
yum install -y nfs-utils rpcbind
3、查看目标服务器的共享资源
showmount -e 192.168.9.120
4、挂载
建挂载点
mkdir -pv /opt/nfsdir
挂载
格式
mount.nfs 服务器的地址:共享目录 本地的挂载点
mount.nfs 192.168.9.120:/nfstest /opt/nfsdir/
5、查看挂载
df -h
最后用:cd /opt/nfsdir ,再ls 查看文件;再vim+文件名,查看里面内容
配置文件详解
共享的资源 共享给谁(共享的权限)
共享的资源:服务器的共享目录 /nfstest
共享给谁:多台主机用空格分开
192.168.1.204 某台主机
wuyvxuan 主机名
任意主机
*.seecen.com 匹配seecen.com的所有主机
/nfs1 192.168.1.51(rw)
权限
ro 只读
rw 读写
配置一个共享目录/nfs1共享给
192.168.9.104(读写)
和192.168.10.145(只读)
服务端:
1、准备共享目录和共享文件
mkdir -pv /nfs1
echo hello > /nfs1/file1
2、编辑配置文件
/nfs1 192.168.9.104(rw) 192.168.10.145(ro)
3、重启服务
[root@zhoukai nfstest]# systemctl restart nfs-server.service
[root@zhoukai nfstest]# systemctl reload nfs-server.service
4、查看共享资源
showmount -e 192.168.9.120
5、给目录添加权限
chmod o+w /nfs1
客户端
1、查看共享资源
showmount -e 192.168.9.120
2、挂载
建立挂载点
mkdir -pv /opt/nfs1
挂载
mount.nfs 192.168.9.120:/nfs1 /opt/nfs1
Samba
Linux和Linux之间用NFS共享
Linux和Windows之间用samba共享
配置文件
/etc/samba/smb.conf
#开头是注释
[global] //全局设置
workgroup = SAMBA //定义工作组
security = user //验证设置
user:需要用户名和密码才能访问
share:匿名用户 //CentOS7已经弃用
passdb backend = tdbsam //用户和密码的存放格式
printing = cups //打印相关
printcap name = cups
load printers = yes
cups options = raw
[homes] 定义一个共享资源
comment = Home Directories 描述信息
valid users = %S, %D%w%S 允许哪些用户使用
browseable = No 不能浏览共享资源
read only = No 只读
inherit acls = Yes 继承ACL权限
[printers] 共享打印机
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
权限控制
writeable=no
write list=用户名 可写列表
readonly=no
read list=用户名 可读列表
访问控制:
设置哪些主机可以使用samba共享服务
hosts allow=xx.xx.xx.xx 允许指定的主机
hosts deny=xx.xx.xx.xx 拒绝指定的主机
例子:
在服务端,提供一个可读的共享资源/sambatest
Windows访问192.168.10.141\test
描述信息:This is a samba test server
搭建前的准备工作:
1、关闭防火墙
2、关闭SeLinux
3、配置静态IP
4、配置yum源
1、查看软件包是否已安装
[root@ops14 ~]# rpm -qa | grep samba
samba-common-tools-4.7.1-6.el7.x86_64 工具包
samba-client-4.7.1-6.el7.x86_64 客户端
samba-common-libs-4.7.1-6.el7.x86_64 通用组件库
samba-client-libs-4.7.1-6.el7.x86_64 客户端组件库
samba-libs-4.7.1-6.el7.x86_64 主程序库文件
samba-4.7.1-6.el7.x86_64 主程序
samba-common-4.7.1-6.el7.noarch 通用工具包
2、安装软件包
yum install -y samba
3、配置共享资源
mkdir -pv /sambatest
echo “Hello Samba” > /sambatest/samba.txt
4、编辑配置文件(/etc/samba/smb.conf)
[test]
comment = This is a samba test server
path = /sambatest
browseable = YES
read only = YES
5、准备samba用户和密码(系统上要有对应的用户)
[root@ops14 ~]# useradd samba1
[root@ops14 ~]# useradd samba2
[root@ops14 ~]# echo 123456 | passwd --stdin samba1
Changing password for user samba1.
passwd: all authentication tokens updated successfully.
[root@ops14 ~]# echo 123456 | passwd --stdin samba2
Changing password for user samba2.
passwd: all authentication tokens updated successfully.
添加samba用户
smbpasswd -a samba1
smbpasswd -a samba2
查看samba用户
pdbedit -L
6、重启服务
systemctl restart smb
7、查看下共享资源
Windows下
\192.168.10.141
练习:
搭建一个samba服务器,共享一个目录/seecen
共享名haha,描述hehe
可浏览
匿名用户不可以访问
只允许samba1用户和samba2组成员访问
samba1用户可写,samba2组的成员只读
拒绝8.8.8.8用户的访问
1、创建共享目录
mkdir /seecen
2、设置目录权限
chmod -v o+w /seecen/
3、修改配置文件
vim /etc/samba/smb.conf
[haha]
comment = hehe
path = /seecen
browseable = YES
guest ok = NO
writeable = NO
write list = samba1
read list = @samba2
valid users = samba1,@samba2
hosts deny = 8.8.8.8
4、重启服务
systemctl restart smb