samba
作用:windows 系统共享文件时用到的协议
windows 如何将指定文件夹共享到 linux
-
打开windows指定文件的共享功能
-
在linux上测试能不能发现该文件夹
对linux 主机做的配置:1. 能ping通 172.20.12.166
2. dnf install samba-client -y
172.20.12.166: 是windows 主机的ip
SNJI-G: 是windows 主机的用户名
实验环境搭建:
- server 主机:
ip :172.25.254.1 - client 主机:
ip:172.25.254.2
samba基本信息
服务启动脚本 | smb.service |
---|---|
主配置目录 | /etc/samba |
主配置文件 | /etc/samba.conf |
安全上下文 | samba_share_t |
端口 | 139和445 |
安装包 | samba和 samba-common |
samba的安装与启用
samba的安装 | dnf install samba samba-common samba-client -y |
---|---|
samba服务启动 | systemctl enable --now smb |
samba服务启用 | firewall-cmd --permanent --add-service=samba |
firewall-cmd --reload |
samba用户的建立
- samba用户必须是被地存在的用户
- samba用户的建立
smbpasswd -a lee | 添加用户 |
---|---|
pdbedit -L | 查看用户列表 |
pdbedit -x lee | 删除用户 |
当创建了smb 用户,默认该用户的家目录就会被共享出去
samba用户访问家目录
当selinux开启时:setsebool -P samba_enable_home_dirs on
测试:
samba服务共享目录
-
生成配置文件
-
建立共享目录
mkdir /westosdir
-
如果开启了selinux,则需要修改共享目录的安全上下文
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
restorecon -RvvF /westosdir/
-
编辑主配置文件
-
重启服务,在client主机测试
samba的访问控制
如果hosts_allow写在 [global] 里面表示对全局的共享文件进行控制
如果写在具体的共享文件里面,则是对这一个共享文件进行控制
-
hosts deny #黑名单(禁止名单的ip访问,如果禁止网段访问 "172.25.254. "代表的意思就是 172.25.254. 这个网段的所有IP 不能访问)
-
hosts deny #白名单(在名单上的人可以访问)
samba的常用配置参数
writable = yes | 可写 |
---|---|
write list = westos | 指定用户可写 |
write list = +westos | 指定组可写 |
write list = @westos | 指定组可写 |
valid users = lee | 指定访问用户 |
valid users = +lee或@lee | 指定访问组 |
browseable = yes或no | 是否隐藏共享(yes 隐藏 no 不隐藏) |
map to guest = bad user | (写到全局设定中)不加-U代表匿名用户登陆 |
guest ok = yes | 允许匿名用户访问 |
admin users = lee | 指定此共享的超级用户身份(指用lee 用户访问时,lee就相当于变成了root 用户) |
samba的多用户挂载
-
用户挂载书写方式
在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务 -
我们可以通过以下操作来解决上述问题
-
dnf install cifs-utils.x86_64
#下载提供解决该问题的软件 -
vim /root/westos_smbpass
#编写认证文件 -
实现不显示密码挂载
-
mount -o credentials=/root/wesots_smbpass,sec=ntlmssp,multiuser //172.25.254.1/Sharedir /mnt
credentials=/root/westos_smbpass | 指定认证文件 |
---|---|
sec=ntlmssp | 指定认证类型 |
multiuser | 支持多用户 |
- 其他用户通过认证可以显示
当其他用户认证时遇到“ Key search failed: Key has expired” 这类报错,cifscreds add -u westos -d 172.25.254.1 和 cifscreds clearall 来解决该问题
autofs+samba
作用:实现自动挂载,当需要时自动挂载,不需要时自动卸载,节省资源
步骤:
-
dnf install autofs.x86_64 -y
#下载插件 -
vim /etc/auto.master
#编辑主配置文件 -
编辑策略文件
vim /etc/auto.cifs
-
编辑主配置文件
vim /etc/autofs.conf
-
重启服务,测试
nfs
nfs基本信息
nfs-utils | 安装包 |
---|---|
nfs-server | 服务脚本 |
/etc/exports | 共享配置文件 |
nfs的启用
systemctl start nfs-server
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload
测试:
nfs配置
vim /etc/exports
exportfs -rv
使文件生效
测试:
nfs配置参数
anonuid=1000,anongid=1000 | 指定用户身份 |
---|---|
sync | 更改生成后同步数据到服务器 |
async | 实时同步数据到服务器 |
rw | 读写 |
ro | 只读 |
no_root_squash | root用户挂载不转换身份 |
autofs+nfs
基本配置和samba+nfs一样
策略文件:vim /etc/auto.cifs
iscsi
服务端配置:
-
fdisk /dev/vdb
#生成一个/dev/vdb1的分区 -
dnf install targetcli -y
#下载服务 -
targetcli
#进入一个运行环境/backstores/block create westos_storage1 /dev/vdb1
#将磁盘分区/dev/vdb1变成网路磁盘/iscsi create iqn.2020-09.com.westos:strage1
#创建一个iqn表达方式的链/iscsi/iqn.2020-09.com.westos:strage1/tpg1/luns create /backstores/block/westos_storage1
#和网络磁盘联系起来/iscsi/iqn.2020-09.com.westos:strage1/tpg1/acls create iqn.2020-09.com.westos:westoskey1
#创建key密码
客户端配置
-
dnf install iscsi-initiator-utils.x86_64 -y
-
vim /etc/iscsi/initiatorname.iscsi
#编辑认证文件 -
重启服务
-
iscsiadm -m discovery -t st -p 172.25.254.1
-
iscsiadm -m node -T iqn.2020-09.com.westos:strage1 -p 172.25.254.1 -l