一、samba服务基础
配置SMB共享,跨平台的共享,Windows与Linux的共享,是第一代反向编译思维的软件,
用途:为客户机提供共享使用的文件夹
协议:SMB(tcp139)协议,CIFS(tcp445)协议
所需软件:samba
系统服务:smb
Samba共享帐号:默认情况下,访问samba共享必须通过用户验证,专门用于访问samba共享时验证的用户与密码,与系统用户为同一用户,但是密码时samba独立密码
二、使用 pdbedit 管理工具
添加用户:pdbedit -a 用户名
查询用户:pdbedit -L [用户名]
删除用户:pdbedit -x 用户名
三、Samba配置文件
Samba配置文件位置:/etc/samba/smb.conf
修改 /etc/samba/smb.conf
[自定共享名]
path = 文件夹绝对路径
; public = no|yes //默认no
; browseable = yes|no //默认yes
; read only = yes|no //默认yes
; write list = 用户1 .. .. //默认无
; valid users = 用户1 .. .. //默认任何用户
; hosts allow = 客户机地址 .. ..
; hosts deny = 客户机地址 .. ..
四、修改防火墙的默认区域为trusted
虚拟机Server
[root@server0 ~]# firewall-cmd --set-default-zone=trusted
虚拟机desktop
[root@desktop0 ~]# firewall-cmd --set-default-zone=trusted
搭建samba服务
一、smb服务端:虚拟机server
1、安装可以提供smb共享功能的软件
[root@desktop0 ~]# yum -y install samba
2、建立samba共享验证的用户
[root@server0 ~]# useradd harry
[root@server0 ~]# useradd kenji
[root@server0 ~]# useradd chihiro
[root@server0 ~]# pdbedit -a harry #添加为Samba共享帐号
[root@server0 ~]# pdbedit -a kenj #添加为Samba共享帐号
[root@server0 ~]# pdbedit -a chihiro #添加为Samba共享帐号vi
[root@server0 ~]# pdbedit -L #查看所有Samba共享帐号
3、创建共享目录文件
[root@server0 ~]# mkdir /common
[root@server0 ~]# ls /common
[root@server0 ~]# echo 123 >/common/123.txt
4、修改配置文件/etc/samba/smb.conf
[root@server0 ~]#tail -5 /etc/samba/smb.conf
[global]
Workgroup = STAFF #指定工作组名
[common] #指定共享名
path = /common #指定共享文件夹的实际绝对路径
5、重起smb的服务
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
6、服务端虚拟机server(布尔值)
-需要加-P选择才能实现永久设置
SElinux策略:布尔值(所有功能的开关)
6.1 查看samba布尔值
[root@server0 ~]# getsebool -a | grep samba
6.2 修改SElinux策略的布尔值
[root@server0 ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_export_all_ro --> off
virt_use_samba --> off
[root@server0 ~]# setsebool samba_export_all_ro on
6.3 查看samba布尔值
[root@server0 ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_export_all_ro --> off
virt_use_samba --> off
二、smb客户端虚拟机desktop
1、安装客户端软件,访问samba共享
[root@desktop0 ~]# yum -y install samba-client
2、查看服务端samba共享,目的查看
[root@desktop0 ~]# smbclient -L //172.25.0.11
Enter root's password: #直接敲回车
Anonymous login successful
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common Disk
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
3、以harry身份,访问服务端
[root@desktop0 ~]# smbclient -U harry //172.25.0.11/common
Enter harry's password: #输入密码
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \>
三、科学访问mount挂载
1、使用mount挂载
所需软件包:cifs-utils #支持cifs协议
[root@desktop0 ~]# yum -y install cifs-utils
[root@desktop0 ~]# mkdir /mnt/samba
[root@desktop0 ~]# mount -o user=harry,pass=123 //172.25.0.11/common /mnt/samba/
[root@desktop0 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
2、开机自动挂载
_netdev:网络设备(没有ip禁止使用netdev)
先启动网络服务,具备网络参数后,在进行挂载
[root@desktop0 ~]# yum -y install cifs-utils
[root@desktop0 ~]# mkdir /mnt/samba
[root@desktop0 ~]# df -h
[root@desktop0 ~]# vim /etc/fstab
[root@desktop0 ~]# tail -1 /etc/fstab
//172.25.0.11/common /mnt/samba cifs defaults,user=harry,pass=123,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h #查看是否挂载成功
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
创建读写samba共享
一、服务端虚拟机Server:
1.部署共享
#追加写入
[root@server0 ~]# mkdir /devops
[root@server0 ~]# echo nsd >/devops/test.txt
[root@server0 ~]# vim /etc/samba/smb.conf #修改配置文件
[root@server0 ~]# tail -5 /etc/samba/smb.conf #查看配置文件后5行
[common]
path = /common
[devops] #共享名
path = /devops #共享路径
write list = chihiro #允许chihiro用户写入
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
2.修改SELinux策略
[root@server0 ~]# getsebool -a | grep samba
[root@server0 ~]# setsebool samba_export_all_rw on
[root@server0 ~]# getsebool -a | grep samba
3.用户本身的本地权限
[root@server0 ~]# setfacl -m u:chihiro:rwx /devops
[root@server0 ~]# getfacl /devops
[root@server0 ~]# ls -l /devops
二、客户端实现自动挂载desktop
1.实现开机自动挂载
[root@desktop0 ~]# mkdir /mnt/pub
[root@desktop0 ~]# vim /etc/fstab
[root@desktop0 ~]# tail -2 /etc/fstab
//172.25.0.11/devops /mnt/pub cifs defaults,user=chihiro,pass=123,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# ls /mnt/pub/
[root@desktop0 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.1G 7.0G 31% /
//172.25.0.11/common 10G 3.1G 7.0G 31% /mnt/samba
//172.25.0.11/devops 10G 3.1G 7.0G 31% /mnt/pub
2、修改SElinux策略
[root@server0 ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_export_all_ro --> on
samba_export_all_rw --> off
virt_use_samba --> off
[root@server0 ~]# setsebool samba_export_all_rw on
[root@server0 ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
......
samba_export_all_ro --> on
samba_export_all_rw --> on
......
virt_use_samba --> off
3、重新加在服务
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
4、修改客户权限
[root@server0 ~]# setfacl -m u:chihiro:rwx /devops/
[root@server0 ~]# getfacl /devops/
总结思路:客户端访问服务端资源
1、服务本身的访问控制
2、本地目录的权限
3、防火墙
4、SElinux