一、samba服务简介
1、smb协议
smb(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
2、ftp 服务 与 samba 服务对比
(1)ftp 的优缺点:
优点:文件传输、应用层协议、可跨平台
缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件
(2)Samba 的特性:
使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件
作用:
windows系统共享文件时用到的协议smb
smb是由miscrosoft+sun
Linux 系统用到的是cifs
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文本传输协议和超文本传输协议的一个实现
二、samba基本信息
服务启动脚本 smb.service
主配置目录 /etc/samba
主配置文件 /etc/samba/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
测试:
smbclient -L //172.25.0.100 ##当要输入root密码时请直接回车
四、samba用户的建立
1.samba用户必须是本地存在的用户
2.samba用户的建立
smbpasswd -a hjl ##添加用户
pdbedit -L ##查看用户列表
pdbedit -x hjl ##删除用户
五、samba服务共享目录
mkdir /samba
touch /samba/sharefile{1..10}
semanage fcontext -a -t samba_share_t '/samba(/.*)?'
restorecon -RvvF /samba/
vim /etc/samba/smb.conf
systemctl restart smb
[SHARE] ##共享名称
comment = local share directory ##共享说明
path = /samba ##共享路径
测试:
六、samba的访问控制
allow hosts 172.25.0.200 ##当写到单独共享时之对此共享生效
deny hosts 172.25.0.100 ##当写到【GLOBAL】时对samba整体生效
测试:
七、samba的常用配置参数
writable = yes 可写
write list = lee 指定用户可写
write list = +westos 指定组可写
write list = @westos 指定组可写
valid users = lee 指定访问用户
valid users = +lee|@lee 指定访问组
browseable = yes|no 是否隐藏共享
测试:
vim /etc/samba/smb.conf
writable = yes ##可写
systemctl restart smb.server
mount -o username=westos,password=westos //172.25.254.101/westos_share /mnt
vim /etc/samba/smb.conf
write list = hjl 指定hjl可写
systemctl restart smb.service
usermod -G hjl wq
vim /etc/samba/smb.conf
writ list = +hjl 组可写
systemctl restart smb.service
mount -o username=hjl,password=123 //172.25.0.100/SHARE /mnt
touch file1
vim /etc/samba/smb.conf
valid users = hjl ##指定访问用户
systemctl restart smb.service
mount -o username=hjl,password=123 //172.25.0.100/SHARE /mnt
mount -o username=wq,password=123 //172.25.0.100/SHARE /mnt
指定访问组和上面一个道理,这里不进行测试
vim /etc/samba/smb.conf
browseable = yes|no ##是否隐藏共享
systemctl restart smb.service
smbclient -L //172.25.0.100
vim /etc/samba/smb.conf
map to guest = bad user ##写到全局设定中(118)
guest ok = yes ##允许匿名用户访问
systemctl restart smb.service
mount -o username=guest //172.25.254.101/westos_share /mnt
八、samba的多用户挂载
在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务
dnf install cifs-utils -y
vim /root/smbauth
username=hjl
password=123
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.0.100/SHARE /mnt
#credentials=/root/smbpass 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
测试:
nfs,samba+autofs
autofs:在客户端实现自动挂载卸载的软件
配置方式:
vim /etc/auto.master
最终挂载点的上层目录 自动以子策略文件
/- /etc/auto.nfs
/- /etc/auto.samba
vim 自动以子策略文件(/etc/auto.nfs)
vim 自动以子策略文件(/etc/auto.samba)
systemctl restart autofs
测试:
cd /nfs
df
cd /samba
df
cd /root
等待资源闲置超时 ##默认300秒 vim /etc/autofs.conf ---->Timeout=3
df
挂载资源自动卸载
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
测试:
showmount -e 172.25.0.100
nfs配置
vim /etc/exports ##此文件更改后生效exportfs -rv
测试:
nfs配置参数
anonuid=1000,anongid=1000 指定用户身份
sync 更改生成后同步数据到服务器
async 时时同步数据到服务器
rw 读写
ro 只读
no_root_squash root用户挂载不转换身份
iscsi
1.fdisk /dev/vdb -------> /dev/vdb1
2.dnf install targetcli -y
iscsi_server #服务端配置
targetcli #进入运行环境
/> /backstores/block create hjl_storage1 /dev/sda1 #将/dev/vdb变成网络磁盘
/> /iscsi create iqn.2023-09.com.hjl:strage1 #创建一个人iqn 的表达方式的链
/> /iscsi/iqn.2023-09.com.hjl:strage1/tpg1/luns create /backstores/block/hjl_storage1 #将网络磁盘和链联系起来
/> /iscsi/iqn.2023-09.com.hjl:strage1/tpg1/acls create iqn.2023-09.com.hjl:key1 #创建key 密码
/> exit #退出保存
iscsi_client #客户端
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2023-09.com.hjl:key1 <---- key check
systemctl restart iscsid
iscsiadm -m discovery -t st -p 172.25.0.100
iscsiadm -m node -T iqn.2023-09.com.hjl:strage1 -p 172.25.0.100 -l ---> /dev/sda
fdisk /dev/sda ---> /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
iscsiadm -m node -T iqn.2023-09.com.hjl:strage1 -p 172.25.0.100 -u删除/dev/sda
iscsiadm -m node -T iqn.2023-09.com.hjl:strage1 -p 172.25.0.100 -o delete 删除树文件
服务机删除