一、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密码时请直接回车
二、smb用户管理及使用
smbpasswd -a westos ##添加用户
若用户在系统中不存在,不能添加。需要先建立用户。
pdbedit -L ##查看用户列表
pdbedit -x yao ##删除用户
smbclient -L //172.25.254.150 -U westos ##指定用户访问
三、关于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
emanage 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
四、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 ok = yes ##此共享允许guest访问
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登陆
五、autofs+samba 实现自动挂载
共享资源挂载后,没有程序使用挂载资源时,会造成资源浪费。所以安装autofs,用来实现需要使用共享资源时自动挂载,没有程序使用时自动卸载。
客户端中:
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
测试:
cd到/westos下,ls查看时没有任何文件与目录。 cd /westos/samba时,成功切换并自动挂载资源。cd回到家目录,挂载资源没有程序使用,三秒后自动卸载。
六、samba多用户挂载
使用root用户挂载登录samba后,切换到其他用户,其他用户也可以访问挂载资源,这是不安全的。所以安装cifs-utils,用来实现多用户安全认证。
客户端中:
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 ##清空密码,认证时密码输错了后使用
七、nfs(Net File System)
1、启用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服务器的共享资源
2、nfs共享配置
服务器
vim /etc/exports
/sharedir *(ro,sync) 172.25.254.250(rw,sync,anonuid=1000,anongid=1000)
##anonuid=1000,anongid=1000 指定用户身份
##sync 更改生成后同步数据到服务器
##async 时时同步数据到服务器
##rw 读写
##ro 只读
##no_root_squash 客户端root用户挂载后沿用root身份到服务器中
exportfs -rv ##使更改生效(注意不是重启服务)
客户端
mount 172.25.254.150:/sharedir /mnt/
测试:
如果共享策略exports写 “172.25.254.250(rw,sync)”,则默认是用nobody用户登录
如果共享策略exports写 “172.25.254.250(rw,sync,anonuid=1000,anongid=1000)”,则是指定用户用户登录(如果只指定uid或gid,则新建文件的所属人和所属组只有指定的会变)
只指定组
如果共享策略exports写 “172.25.254.250(rw,sync,no_root_squash)”,则沿用root用户
3、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
测试:
查看/westosdir下没有文件与目录,cd /westosdir/nfs时自动挂载。没有程序使用共享资源时则自动卸载。
八、 关于设备共享
1、建立共享
服务器
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。使连接好网络后再挂载。
vim /etc/fstab
2、客户端取消登陆 服务器删除共享资源
客户端
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 ##清除共享数据