1. NFS 概念
网络文件系统 (NFS) 是 Unix 系统和网络附加存储文件管理器常用的网络文件系统 ,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问 , 也可用于允许用户在同一工作组中从不同客户端访问其文件。
NFS 协议有多个版本 :Linux 支持版本 4 、版本 3 和版本 2, 而大多数系统管理员熟悉的是 NFSv3 。
默认情况下 , 该协议并不安全 , 但是更新的版本 ( 如 NFSv4) 提供了对更安全的身份验证的支持 ,
甚至可以通过 kerberos 进行加密
客户端也要安装nfs
唯一访问方式:挂载
2.客户端 NFS 挂载选项
rw 挂载可读写的文件系统
ro 挂载只读文件系统
vers=4 尝试只使用指定的 NFS 版本进行挂载。如果服务器不支持该版本 , 则挂载请求失败
soft: 如果 NFS 请求超时 , 三次尝试后返回错误。权衡数据完整性与提高客户端响应性。 ( 默认行为 hard, 将无限期地重试 )
一、NFS文件共享
1、安装
命令:yum install nfs-utils -y
systemctl start nfs
systemctl start firewalld #火墙允许了后还是不能访问
firewall-cmd --list-all
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind #rpc-bind给客户端随即分配端口
firewall-cmd --permanent --add-service=mountd #mountd --->客户主机挂载时需要的工具 firewall-cmd --list-all
用户连接NFS文件,共享端测试:
2、编辑共享文件
命令:vim /etc/exports
内容:/westos *(async) ##共享文件 共享给谁 (共享方式,数据同步)
exportfs -rv ##刷新配置
刷新配置
测试文件共享测试:
在用户端进行挂载:
查看共享内容:
3、卸载:下载 后回到原目录不可查看原来的内容
二、autofs自动挂载
autofs ---> 在客户端可以自动挂载的服务
-
安装自动挂载软件:yum install autofs.x86_64 -y
命令:yum install autofs.x86_64 -y
systemctl start autofs
2、开启autofs 后会自动生成 /net/ 目录,关闭后自动消失
进入/net/目录可以进入共享用户的目录后自动挂载
3、制定闲置多长时间自动卸载
编辑主配置文件:
rpm -qc autofs 可查看主配主文件
7.0以上的版本:/etc/autofs.conf
7.0以下的版本:/etc/sysconfig/autofs
vim /etc/autofs.conf
timeout=3 ##3秒没有操作后自动卸载,没改之前默认卸载时间:300秒
systemctl restart autofs.service
(1)、编辑自动挂载主配置文件
(2)、编辑文件内容
(3)、重服务
(4)、测试:闲置3s后自动卸载
4、编辑系统自动挂载文件
vim /etc/auto.master ##主策略文件
/misc /etc/auto.misc
/opt /etc/auto.westos ##最终挂载点的上层目录
(1)编辑主策略文件
(2)、指定自动挂载的文件
(3)、建立挂载目录 重启服务
(4)编辑用户自动挂载文件
vim /etc/auto.westos
pub -or 172.25.254.118:/mnt
systemctl restart autofs
(5)、编辑建立好的挂载文件指定挂载的的目录
(6)、测试:进入自动挂载目录后自动挂载
(7)、查看挂载的内容
命令:mount
(8)、进入自动挂载目录、查看挂载内容
5、NFS文件共享的读写权限
(1)、实验现象:用户挂载只能看不能写
(2)、步骤
vim /etc/exports ##编辑共享主文件
内容: /mnt *(async,rw) ##赋予用户读写的权限
exportfs -rv
chmod 777 /mnt/ ##修改访问目录的权限
(3)、编辑端自动挂载文件
vim /etc/auto.mnt
内容:pub -rw 172.25.66.166:/mnt
systemctl restart autofs
(4)、测试:
5.匿名用户访问
任何人使用共享时,都是指定的向下兼容
改成hard会卡
(1)、匿名用户建立文件时不指定用户身份
建立文件属于密名用户
(2)、匿名用户以root身份建立文件
vim /etc/exportfts
内容:/mnt *(async,rw no_root_squash)
exportfs -rv
(1)、进入用户端挂载系统
(2)、测试:
新建用户属于root用户
3、以student用户建立文件
(1)、编辑目录
(2)、指定建立的uid 和gid
(3)、刷新
(4)、测试:
三、Samba 文件共享
用 Internet 文件系统 (CIFS) 也称为服务器信是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统息块 (SMB)。
Samba 服务可用于将 Linux 文件系统作为 CIFS/SMB 网络文件共享进行共享 ,并将 Linux 打印机作为 CIFS/SMB 打印机共享进行共享。
2.Samba 服务的组成部分
软件包:
Samba-common ——>Samba 的支持文件
Samba-client ——>客户端应用程序
Samba ——>服务器应用程序
服务名称:smb nmb
服务端口 :通常使用 TCP/445 进行所有连接。还使用UDP137 、 UDP138 和 TCP/139 进行向后兼容
主配置文件 :/etc/samba/smb.conf
3.保护 Smb
samba_enable_home_dirs
布尔值允许本地 Linux 主目录作为 CIFS 文件共享导出至其他系统
use_samba_home_dirs
布尔值允许挂载远程 CIFS 文件共享并将其用作本地 Linux 主目录
samba_share_t
smb 共享目录的 selinux 安全上下文
samba_export_all_ro 和 samba_export_all_rw
共享系统目录时要打开
4.Samba服务器的安装及访问调试:
yum install samba-common samba-client.x86_64 samba.x86_64 -y ##安装软件
systemctl stop friewalld ##默认受火墙影响
systemctl start smb ##开启服务
5、编辑域名解析文件
(1)、进入域名解析文件
(2)、检查解析域名的畅通情况
(3)、测试:
:
6、建立samnba用户
smbpasswd -a westos ##建立用户:smb用户必须时本机存在的用户
pdbedit -L ##查看smb用户列表
pdbedit -x student ##删除用户
(1)、建立samba用户
(2)、测试:
smbclient //172.25.254.118/student -U student ##查看家目录
7、pdbedit 命令的用法
pdbedit -L ##查看smb用户列表
pdbedit -a -u student ##建立用户
pdbedit -lv username ##查看用户详细信息
8、samba 自动挂载
vim /etc/auto.master ##进入自动挂载目录
(1)、编辑文件写入需要挂载的目录
挂载
vim /etc/auto.master ##进入自动挂载目录
内容:
/samba /etc/auto.samba
(2)、进入挂载目录
(3)、将自动挂载目录写入文件
(4)、编辑自动挂载文件
vim /etc/auto.samba
(5)、编辑自动挂载文件的内容
(6)、重启服务
(7)、查看挂载的内容
9、设置samba工作目录
(1)、编辑samba注配置文件
vim /etc/samba/smb.conf
(2)、修改工作目录名称
(3)、重启服务
(4)、测试:
10、用户黑白名单的建立
(1)、建立用户黑名单:hosts deny = 172.25.66.11
(2)、建立用户白名单:host allow = 172.25.66.11
(3)、测试:可以访问
11、Smaba共享目录
(1)、共享自己建立的文件
(2)、编辑共享文件
vim /etc/samba/smb.conf
[WESTOSXIXI] ##共享名称(能看到的名字)
comment= test share ##共享说明(能看到的目录)
path =/westos ##共享目录路径
systemctl restart smb
(3)、测试:
smbclient -L //172.25.666.166/WESTOSXIXI -U westos
12、允许匿名用户访问
(1)、编辑文件
vim /etc/samba/smb.conf
systemctl restart smb
(2)、重启服务
(3)、测试:
13、管理参数
所有用户均可写:writable = yes
(1)、实验准备:
挂载之后没有开放各户端写的权限
(2)、赋予各户端对/westos/共享目录操作的权限
chmod 777 /westos/
(3)、开启各户端编辑共享目录的功能
(4)、重启服务
systemctl restart smb.service
(5)、建立samba用户
(6)、编辑自动挂载文件
(7)、以lee用户的身份进行挂载
(8)、以lee的身份建立文件,所建立的文件属于lee用户
(二)、关闭各户端写的功能
(2)、测试:
14、指定用户可写:write list = username
(1)、编辑文件指定lee用户可以写入
(2)、查看用户列表
(3)、以lee用户身份进行挂载
结果:可以建立文件
(4)、以westos身份进行挂载
结果:写入失败
15、指定用户以及该用户组写下的用户对挂载的内容可写:write list = @username
(1)、编辑文件内容
(2)、建立lee用户组下的用户westos
(3)、以westos用户身份进行挂载
测试结果:可以写入
(4)、以lee身份进行挂载
测试结果:可以写入
(5)、以student用户身份进行挂载
测试结果:不可写入
autofs
16、指定用户可以挂载:valid users =+username
(1)、以下图以lee用户为例
重启服务:
(2)、以westos用户身份挂载
测试结果:没有指定westos用户,挂载失败。
(3)、以lee用户身份进行挂载
测试结果:可以挂载
17、指定lee用户以及lee用户所属组下的用户可以挂载
1、编辑文件:valid users = +lee
(2)、以westos用户身份进行挂载
测试结果:westos用户挂载成功
18、设定共享目录是否可见:browseable = No
浏览权限browseable =No/yes ##浏览权限(不能查看系统共享文件)
设置browseable =No,登录后看不到westos共享文件
(1)、实验测试:
(2)、编辑文件内容
(3)、测试:
19、selinux都及文件共享的影响
(1)、实验准备将selinux的等级改成强制
(2)、重启服务:
(3)、进行文件挂载
测试结果:挂载后用户端无法查看挂载的内容
(4)、将selinux的等级改成警告
(5)、测试结果:可以查看到共享目录下的内容
注:共享目录自建立目录时需要修改的selinux属性,此方法修改只针对修改目录
20、安全上下文的修改
(1)、进行安全上下文的设定
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos/
注:用户此方法修改安全上下文永久生效
(2)、将selinux等级设置为强制
(3)、测试结果:可以看到共享目录
21、文件共享服务
(1)、安装文件共享服务软件
yum install cifs-util -y
(2)、创建文件共享读取用户信息的文件
vim /root/smbpassfile ##创建共享文件读取用户信息的文件
chmod 600 /root/smbpassfile ##将文件权限设置为只用管理员可见
(3)、将用户信息写入文件:
格式用户名
密码
(4)、挂载:
查看挂载的内容
更改系统及安全上下文会有新的问题出现(这里不多作说明)
bool打开后会忽略安全上下文
共享自己的文件也可以用这个方法,但是权限过大不安全
(5)、开启用户写的权限
getsebool -a | grep samba
setsebool -P samba_export_all_ro on ##打开只读开关
setsebool -P samba_export_all_rw on ##读写
(6)、测试结果:用户可以建立文件
/smbpassfile
22、指定共享用户:
(1)、实验准备
切换到student用户
student用户查看共享文件失败
(2)、编辑smb.conf文件,将指定用户可挂载功能关闭
(3)、重启服务、设置selinux的等级
(4)、添加对student用户可以共享的用户为lee
cifscreds add -u lee 172.25.66.166
测试结果:student用户可以查看到共享文件中的内容