1、samba安装与使用
dnf install samba samba-common samba-client -y
systemctl enable --now smb
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试:
smbclient -L //172.25.254.150 ##当要输入root密码时请直接回车
2、samba用户管理
smbpasswd -a westos ##添加用户,必须为系统中存在的用户
pdbedit -L ##查看用户列表
pdbedit -x westos ##删除用户
3、samba服务共享目录
cp smb.conf.example smb.conf -p ##复制配置文件的模板
指定用户登陆时,是访问不了家目录的,是selinux安全上下文的缘故。
setsebool -P samba_enable_home_dirs on ##selinux将不会对samba服务访问家目录进行限制
mkdir /share ##自建想要共享的目录
vim /etc/samba/smb.conf ##根据模板写共享目录参数
[share]
comment = share_
path = /share
systemctl restart smb.service
semanage fcontext -a -t samba_share_t '/share(/.*)?' ##修改安全上下文使samba可以访问
restorecon -RvvF /share/ ##立即生效
vim /etc/samba/smb.conf ##共享系统级目录。如果修改安全上下文会导致其他服务无法访问,所以修改相关sebool值即可
[mnt]
comment = mnt_
path = /mnt
systemctl restart smb.service
setsebool -P samba_export_all_ro on ##selinux将不再对samba服务访问文件的安全上下文进行限制
setsebool -P samba_export_all_rw on ##selinux将不再对samba服务编写文件的安全上下文进行限制
getsebool -a | grep samba
4、samba的读写控制
全局黑白名单
vim /etc/samba/smb.conf
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
hosts allow = 172.25.254.250 ##全局白名单
hosts deny = 172.25.254.150 ##全局黑名单
systemctl restart smb.service
指定共享目录参数
vim /etc/samba/smb.conf
[share]
comment = share_
path = /share
hosts allow =172.25.254.250
browseable = no ##是否-L时显示此目录
valid user = westos ##此目录只能westos用户访问
; valid user = @westos ##此目录只能属于westos组的用户访问
writable = yes ##此目录允许读写
; write list = +westos ##此目录允许属于westos组的用户读写
systemctl restart smb.service
匿名用户
vim /etc/samba/smb.conf
map to guest = bad user ##映射匿名身份为guest账号
[share]
comment = share_
path = /share
; hosts allow =172.25.254.250
; browseable = no
; valid user = westos
; valid user = @westos
; writable = yes
; write list = +yao ##此共享允许guest访问
guest ok = yes
systemctl restart smb.service
客户端:
mount //172.25.254.150/share /mnt -o username=westos,password=westos ##使用westos登陆共享目录
mount //172.25.254.150/share /mnt -o username=guest ##guest登陆
5、autofs+samba 实现自动挂载
客户端中:
dnf install autofs ##安装autofs
mkdir /westos
vim /etc/auto.master ##编写策略文件
----8 /westos /etc/auto.share ##最终挂载的上层目录 子策略文件,名字任意
vim /etc/auto.share ##编写子策略文件
---samba -fstype=cifs,username=yao.password=yao ://172.25.254.150/share ##最终挂载点的相对路径 挂载参数 ip及资源
vim /etc/autofs.conf
---15 timeout = 3 ##挂载资源3秒没有程序使用则自动卸载 默认300秒
systemctl restart autofs.service
测试:
[root@westoslinux ~]# cd /westos
[root@westoslinux westos]# ls
[root@westoslinux westos]# cd samba
[root@westoslinux samba]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 403532 0 403532 0% /dev
tmpfs 419132 0 419132 0% /dev/shm
tmpfs 419132 6060 413072 2% /run
tmpfs 419132 0 419132 0% /sys/fs/cgroup
/dev/vda3 17814528 3342308 14472220 19% /
/dev/vda1 1038336 173172 865164 17% /boot
tmpfs 83824 4 83820 1% /run/user/0
//172.25.254.150/share 17814528 3397952 14416576 20% /westos/samba
[root@westoslinux samba]# cd
[root@westoslinux ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 403532 0 403532 0% /dev
tmpfs 419132 0 419132 0% /dev/shm
tmpfs 419132 6060 413072 2% /run
tmpfs 419132 0 419132 0% /sys/fs/cgroup
/dev/vda3 17814528 3342308 14472220 19% /
/dev/vda1 1038336 173172 865164 17% /boot
tmpfs 83824 4 83820 1% /run/user/0
6、samba的多用户挂载
dnf install cifs-utils -y ##安装多用户认证安全插件
vim /root/smbpasswd ##编写密码文件
---username=yao
---password=yao
chmod 600 /root/smbpasswd
mount -o credentials=/root/smbpasswd,multiuser,sec=ntlmssp //172.25.254.150/share /mnt/ ##挂载
#credentials=/root/smbpasswd 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
su - westos
ls /mnt ##没有安全认证,访问不了
cifscreds add -u westos 172.25.254.150 ##添加认证
cifscreds clearall ##清空密码
7、nfs(Net File System)
nfs启用:
服务器
systemctl enable --now nfs-server.service
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload ##nfs的运行机制较为不同,需要三个服务
客户端
showmount -e 172.25.254.150 ##列出nfs服务器的共享资源
nfs配置:
服务器
vim /etc/exports
/sharedir *(ro,sync) 172.25.254.250(rw,sync,anonuid=1000,anongid=1000)
##nonuid=1000,anongid=1000 指定用户身份
##sync 更改生成后同步数据到服务器
##async 时时同步数据到服务器
##rw 读写
##ro 只读
##no_root_squash 客户端root用户挂载后沿用root身份到服务器中
exportfs -rv ##使更改生效
客户端查看效果
mount 172.25.254.150:/sharedir /mnt/ ##其他主机挂载后只能读;250可读写,没有任何参数时默认身份为nobody
nfs+autofs:
客户端
vim /etc/auto.master
---/westosdir /etc/auto.nfs ##最终挂载点的上一级目录 子挂载策略
vim /etc/auto.nfs
---nfs -rw 172.25.254.150:/sharedir ##最终挂载的相对路径 挂载参数 挂载资源
systemctl restart autofs.service
8、关于设备共享
建立共享:
服务器
dnf install targetcli ##安装共享策略管理软件
systemctl enable --now target
targetcli ##编写共享策略
ls ##蓝色为目录,紫色为目录中的命令
/backstores/block create westos_share1 /dev/vdb1 ##设立软件中设备的别名
/iscsi create iqn.2020-08.com.westos:share1 ##设立对外共享的名称
/iscsi/iqn.2020-08.com.westos:share1/tpg1/luns create /backstores/block/westos_share1
##对外共享名称与设备关联
/iscsi/iqn.2020-08.com.westos:share1/tpg1/acls create iqn.2020-08.com.westos:key1
##设定访问key
exit
firewall-cmd --permanent --add-port=3260/tcp ##开放端口
firewall-cmd --reload
客户端
dnf install iscsi-initiator-utils.x86_64
iscsiadm -m discovery -t st -p 172.25.254.150 ##查询共享信息
vim /etc/iscsi/initiatorname.iscsi
---InitiatorName=iqn.2020-08.com.westos:key1 ##指定共享key
systemctl restart iscsid ##重启控制配置的服务
iscsiadm -m node -T iqn.2020-08.com.westos:share1 -p 172.25.254.150 -l##-l登陆共享设备
fdisk -l
若想让该设备永久挂载编写/etc/fstab时,因为是通过网络访问,所以需要设定defaults,_netdev。使连接好网络后再挂载。
客户端取消登陆 服务器删除共享资源:
客户端
iscsiadm -m node -T iqn.2020-08.com.westos:share1 -p 172.25.254.150 -u ##退出登陆,但数据依旧存在,重启iscsi服务会重新出现
iscsiadm -m node -T iqn.2020-08.com.westos:share1 -p 172.25.254.150 -o delete ##-u后执行此命令,删除数据即可永久退出
服务器
targetcli
clearconfig confirm=True ##清除共享数据