Linux下的SMB服务(samba服务器)

SMB文件共享

用internet文件系统(CIFS)也称为服务器信,是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统息块(SMB)
Samba服务可用于将linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享

Samba服务的组成部分
软件包:
Samba-common  ##Samba的支持文件
Samba-client  ##客户端应用程序
Samba         ##服务器应用程序
服务名称:smb nmb
服务端口:通常使用TCP/445进行所有连接。还是用UDP137、UDP138和TCP/139进行向后兼容
主配置文件:/etc/samba/smb.conf

1.samba环境部署

在服务端(Desktop):

  • 安装软件

yum install samba-client.x86_64 -y
yum install samba-common.x86_64 -y
yum install samba.x86_64 -y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
systemctl start smb ##开启服务
netstat -antlupe | grep smb ##查看端口
Linux下的SMB服务(samba服务器)_第1张图片

  • 添加火墙功能

firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --add-service=samba-client
firewall-cmd --reload
Linux下的SMB服务(samba服务器)_第2张图片

  • 查看Selinux

getnforce ##查看selinux状态
Enforcing
在这里插入图片描述
vim /etc/sysconfig/selinux
Linux下的SMB服务(samba服务器)_第3张图片
reboot重启
在这里插入图片描述
注:selinux开启时,必须更改samba共享目录的安全上下文

  • 查看主配置目录

rpm -qc samba-common在这里插入图片描述

  • 建立smb用户:

useradd westos ##添加系统用户
smbpasswd -a westos ##添加smb用户
pdbedit -L##查看smb用户
Linux下的SMB服务(samba服务器)_第4张图片

  • 修改配置文件

vim /etc/samba/smb.conf ##查看配置文件对于selinux开启时的要求
在这里插入图片描述
可以看到当selinux开启时,samba的共享目录需更改安全上下文
mkdir /westos ##建立samba服务器的共享目录
semanage fcontext -a -t samba_share_t '/westos(/.*?)?' ##更改安全上下文
restorecon -RvvF /westos ##加载使更改生效
在这里插入图片描述
在这里插入图片描述
vim /etc/samba/smb.conf ##编辑配置文件
[WESTOS] ##对外共享的名字
path = /westos_smb ##对外共享的内容
在这里插入图片描述
systemctl restart smb.service ##重启smb服务,使更改生效
systemctl enable smb.service ##开机自启
在这里插入图片描述

客户端登陆(Server):

smbclient -L //172.25.254.121 ##用匿名用户查看samba服务器共享的目录(-L表示list列出)
Linux下的SMB服务(samba服务器)_第5张图片
smbclient //172.25.254.229/westos -U westos ##用westos用户进入共享目录
Linux下的SMB服务(samba服务器)_第6张图片
没有挂载在本地的话只能ls查看,只有挂载在本地才可以进行上传下载等操作
mount //172.25.254.229/westos /mnt -o username=westos,password=123 ##将samba服务器的共享目录挂载在本地目录/mnt下,挂载时必须加上samba用户
Linux下的SMB服务(samba服务器)_第7张图片

2.samba的基本操作

  • 添加共享目录说明

在服务端
vim /etc/samba/smb.conf##编辑samba服务的配置文件
添加 comment=westos dir##加入对共享目录的说明,客户端查看时会看到此说明
在这里插入图片描述
systemctl restart smb ##重启服务,使更改生效
在这里插入图片描述
客户端测试
smbclient -L //172.25.254.121/westos
Linux下的SMB服务(samba服务器)_第8张图片

  • 更改用户组

在服务端
vim /etc/samba/smb.conf##编辑samba服务的配置文件
workgroup = WESTOS ##修改用户组
在这里插入图片描述
systemctl restart smb ##重启服务,使更改生效
客户端测试
smbclient -L //172.25.254.121/westos
Linux下的SMB服务(samba服务器)_第9张图片

  • 黑白名单

在服务端
vim /etc/samba/smb.conf##编辑samba服务的配置文件
hosts allow = 172.25.254.121##只允许172.25.254.121主机登陆
在这里插入图片描述
systemctl restart smb ##重启服务,使更改生效
在172.25.254.121主机
smbclient -L //172.25.254.121/westos
可以正常访问
Linux下的SMB服务(samba服务器)_第10张图片
在172.25.254.221主机上
smbclient -L //172.25.254.121/westos
访问被拒绝!
在这里插入图片描述

  • 读写权限

在服务端
vim /etc/samba/smb.conf##编辑samba服务的配置文件
writable = yes ##开启读写权限
在这里插入图片描述
systemctl restart smb ##重启服务,使更改生效
chmod 777 /westos ##开启此目录的读写权限
在这里插入图片描述
在客户端
mount //172.25.254.121/westos /mnt -o username=westos,password=123##挂载共享目录
cd /mnt##切换到挂载目录下
touch file666 ##建立文件
Linux下的SMB服务(samba服务器)_第11张图片
注:客户端和服务端对于文件的拥有者名字可能不同,但是id肯定一致

  • 设置/mnt系统目录的共享

在服务端
vim /etc/samba/smb.conf##编辑samba服务的配置文件
Linux下的SMB服务(samba服务器)_第12张图片
systemctl restart smb ##重启服务,使更改生效
客户端测试
smbclient -L //172.25.254.121/westos
Linux下的SMB服务(samba服务器)_第13张图片
若要读写共享目录,需解挂之前的,重新挂载
Linux下的SMB服务(samba服务器)_第14张图片
发现此时虽然可进入/mnt,但是查看不到内容
在这里插入图片描述
此时需修改服务端的selinux状态为警告:
在这里插入图片描述
发现客户端可以查看/mnt共享目录的内容
在这里插入图片描述

  • 权限列表控制

在服务端
SELinux状态改为Enforcing
setsebool -P samba_export_all_ro on#打开只读权限
getsebool -a | grep samba ##打开权限列表
Linux下的SMB服务(samba服务器)_第15张图片
客户端
此时ls发现可以查看
Linux下的SMB服务(samba服务器)_第16张图片

在服务端
vim /etc/samba/smb.conf ##查看配置文件
writable = yes ##开启写权限
Linux下的SMB服务(samba服务器)_第17张图片
setfacl -m u:westos:rwx /mnt ##给westos用户对/mnt目录的满权限
setsebool -P samba_export_all_rw=1 ##打开读写权限
getsebool -a |grep samba ##查看samba服务的权限
Linux下的SMB服务(samba服务器)_第18张图片
客户端
此时发现可以建立文件
在这里插入图片描述
注:当开启samba_export_all_ro/samba_export_all_rw 权限后,再次登陆非系统文件,只授权就可以,不用修改selinux和安全上下文

你可能感兴趣的:(Linux下的SMB服务(samba服务器))