samba
1. samba服务简介
smb是 windows中使用的文件共享协议,SMB协议又称为CIFS协议。
作用:
windows系统共享文件时用到的协议smb,客户机通过该协议可以访问服务器上的共享文件。
CIFS: (Common Internet File System)通用网络文件系统,是windows主机之间共享的协议,samba实现了这个协议,所以可以实现wondows与linux之间的文件共享服务。
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
测试:
(没有指定用户登录就看不到共享出来的文件)
smbclient -L //172.25.254.254 (Windows主机)##当要输入root密码时请直接回车
3.samba用户的建立
在Linux主机之间进行共享
下载smb服务后需要复制出一份smb.conf配置文件
创建用户
开启共享文件的家目录
1.samba用户必须是当地存在的用户
2.samba用户的建立
smbpasswd -a lee ##添加用户
pdbedit -L ##查看用户列表
pdbedit -x lee ##删除用户
4.samba用户访问加目录
当selinux开启时:
setsebool -P samba_enable_home_dirs on
windows下
\172.25.254.254 ##访问
net use ##查看访问记录
net use * /del ##删除访问记录
能否在linux中找到windows共享出来的文件
在linux下:
smbclient //172.25.254.254/westos -U administrator (254为Windows主机)##-U指定用户
可以在挂载的目录下对共享目录进行读写
5.samba服务共享目录
mkdir /westosdir
touch /westosdir/westosfile{1…5}
semanage fcontext -a -t samba_share_t ‘/westosdir(/.*)?’
restorecon -RvvF /westosdir/ ##刷新
vim /etc/samba/smb.conf
[westosdir] ##共享名称
comment = westosdir ##共享说明
path = /westosdir ##共享路径
systemctl restart smb
测试:
smbclient //172.25.254.154/westosdir -U westos (154为linux主机服务端)
6.samba的访问控制
hosts allow 172.25.254.4 172.25.254.154 ##当写到单独共享时之对此共享生效
hosts deny ##指定主机能访问或拒绝访问共享文件
不能挂载即访问不了
允许访问后就能挂载了
7.samba的常用配置参数
writable = yes ##可写
write list = westos ##指定用户可写
write list = +westos ##指定组可写
write list = @westos
valid users = lee ##指定访问用户
valid users = +lee|@lee ##指定访问组,@和+都表示该组或该组的从属组
browseable = yes|no ##是否隐藏共享
map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = lee ##指定此共享的超级用户身份呢
在共享目录中创建文件所有者和用户组设定为指定者
以指定者的身份去挂载
以指定身份挂载后其他人不能更改
将westos用户添加为lee的主组就能访问
隐藏共享目录后,匿名用户登录看不到共享目录
8.samba的多用户挂载
在客户端如果用普通的挂载方式
没有用过用户验证的人也可以访问samba服务
指定用户可以登录,其他用户不能登录
更改规则,使该文本下的用户能访问
vim /root/smbpass
username=westos
password=westos
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.20/westosdir /mnt
修改test目录下的权限就能挂载
#credentials=/root/smbpass 指定认证文件
#sec=ntlmssp 指定认证类型
#multiuser 支持多用户
su - westos
[westos@test /]$ ls /mnt ##客户端主机的wetos用户没有通过认证
ls: cannot access ‘/mnt’: Permission denied
[westos@test ~]$ cifscreds add -u lee 172.25.254.154
Password:
[westos@test ~]$ ls /mnt/ ##通过认证可以显示
file file1111 file2 file22222
[westos@test /]$ cifscreds add -u lee 172.25.254.154
Key search failed: Key has expired ##当遇到此报错信息
[westos@test /]$ cifscreds add -u lee -d 172.25.254.154
Password:
[westos@test ~]$ cifscreds clearall ##执行以上两条命令解决报错
NFS
Net File System
1.nfs基本信息
nfs-utils ##安装包
nfs-server ##服务脚本
/etc/exports ##共享配置文件
2.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
测试:
[root@dns_node1 ~]# showmount -e 172.25.254.105
Export list for 172.25.254.154:
3.nfs配置
vim /etc/exports ##此文件更改后生效exportfs -rv
共享目录 共享给谁(共享参数)
/westosdir *(ro) ##只读
测试:
mount 172.25.254.154:/westosdir /mnt/
4.nfs配置参数
anonuid=1001,anongid=1001##指定用户身份
sync ##更改生成后同步数据到服务器
async ##时时同步数据到服务器
rw ##读写
ro ##只读
no_root_squash ##root用户挂载不转换身份
当没有no_root_squash 时,创建的文件UID和GID是nobody
5.nfs+autofs
参看autofs章节内容
vim /etc/auto.nfs
nfs 172.25.254.30:/westosdir
使auto.nfs文件生效
auto.nfs文件
autofs+samba
autofs:
在客户端实现自动挂载卸载的软件
配置方式:
vim /etc/auto.master
最终挂载点的上层目录 自动以子策略文件
/mnt /etc/auto.samba
vim 自动以子策略文件(/etc/auto.samba)
最终挂载点 挂载参数 挂载资源
samba -fstype=cifs,username=westos,password=lee ://172.25.254.20/westosdir
systemctl restart autofs
测试:
cd /mnt/samba
df
cd /root
等待资源闲置超时 ##默认300秒 vim /etc/autofs.conf ---->Timeout=3
df
挂载资源自动卸载
iscsi
fdisk /dev/vdb -------> /dev/vdb1
dnf install targetcli -y
iscsi_server
targetcli
/> /backstores/block create westos_storage1 /dev/vdb1
/> /iscsi create iqn.2020-11.org.westos:strage1
/> /iscsi/iqn.2020-11.org.westos:strage1/tpg1/luns create /backstores/block/westos_storage1
/> /iscsi/iqn.2020-11.org.westos:strage1/tpg1/acls create iqn.2020-11.org.westos:westoskey1
/> exit
iscsi_client
dnf install iscsi-initiator-utils.x86_64 -y
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-11.org.westos:westoskey1 <---- key check
systemctl restart iscsid
iscsiadm -m discory -t st -p 172.25.254.154
iscsiadm -m node -T iqn.2020-11.org.westos:strage1 -p 172.25.254.154 -l —> /dev/sda
fdisk /dev/sda —> /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt