Samba服务的部署

本文介绍了Samba服务,它是Linux和Unix系统上实现SMB协议的免费软件。详细阐述了Samba服务的部署,包括服务端和客户端配置,还说明了用户管理、访问控制、共享设置等内容,如共享自建目录和系统目录,以及不同用户和用户组的读写访问权限设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. SMB概述

(1)Samba简介

Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,提供CIFS(Common Internet File System)协议,
由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,
它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
主配置文件 : /etc/samba/smb.conf

二. Samba服务的部署
配置服务端:

1.安装samba服务

##1.安装samba服务软件
[root@service ~]# yum install -y samba samba-common 
##2.安装samba客户端软件;便于后续的测试(即该结点既为服务端又为客户端,这样可以节省一个节点资源)
[root@service ~]# yum install -y samba-client 
##3.开启服务
[root@service ~]# systemctl start smb
##查看火墙的状态
[root@service ~]# systemctl status firewalld

在这里插入图片描述

##4.关闭火墙
[root@service ~]# systemctl stop firewalld
##开机自动关闭火墙
[root@service ~]# systemctl enable firewalld
##查看selinux的状态
[root@service ~]# getenforce 
Enforcing
##5.更改selinux的状态为警告模式
[root@service ~]# setenforce 0
[root@service ~]# getenforce 
Permissive

在这里插入图片描述
2.管理samba用户

(1)添加samba用户

注意:添加的samba用户必须为本地真实存在的用户

[root@service ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@service ~]# id westos
id: westos: no such user

-a表示添加samb用户

[root@service ~]# smbpasswd -a student
New SMB password:    ##设定samb用户密码(与本地用户密码无关)
Retype new SMB password:
Added user student.
##添加samb用户报错,因为系统中没有该用户
[root@service ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Failed to add entry for user westos.
##创建用户
[root@service ~]# useradd westos
##添加samb用户成功
[root@service ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
##查看系统的samb用户
[root@service ~]# pdbedit -L
student:1000:student
westos:1001:
(2)删除samb用户

##-x表示删除
[root@service ~]# pdbedit -x student
[root@service ~]# pdbedit -L
westos:1001

在这里插入图片描述
配置客户端:

1.安装samba客户端软件

[root@client ~]# yum install -y samba-client

2.samba用户信息浏览

(1)匿名用户浏览

##-L表示列出信息

[root@client ~]# smbclient -L //172.25.254.102

在这里插入图片描述
(2)本地samba用户浏览

westos用户必须为samba用户

[root@client ~]# smbclient -L //172.25.254.134 -U westos

3.本地samba用户访问家目录

(1)以直接登陆的方式 访问本地samba用户家目录

##samba用户:westos 的家目录为 /westos
[root@client ~]# smbclient //172.25.254.134/westos -U westos
Enter westos’s password: ##输入samba用户:westos 的密码
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: > ls
. D 0 Sat Nov 24 10:39:27 2018
… D 0 Sat Nov 24 10:39:27 2018
.mozilla DH 0 Sat Nov 17 22:28:52 2018
.bash_logout H 18 Wed Jul 8 19:11:02 2015
.bash_profile H 193 Wed Jul 8 19:11:02 2015
.bashrc H 231 Wed Jul 8 19:11:02 2015

8706048 blocks of size 1024. 5706456 blocks available
##不能建立文件,因为这不是shell环境,不能使用shell命令
smb: > touch file1
touch: command not found
smb: > quit
在这里插入图片描述
(2)以挂载的方式 访问本地samba用户家目录

[root@client ~]# mount -o username=westos,password=westos //172.25.254.134/westos /mnt
[root@client ~]# df
[root@client ~]# cd /mnt
[root@client mnt]# ls
[root@client mnt]# touch file{1..3}
[root@client mnt]# ls
file1  file2  file3

##此时可在samba服务端的samba用户(westos)的家目录里查看到刚才建立的文件

[root@service ~]# ls -l /home/westos

4.samba访问控制

所有更改samba服务配置文件操作均为 即改即生效,也就是说无需重启samba服务

1.更改域名(Domain)

[root@service ~]# vim /etc/samba/smb.conf 

#################
89 workgroup = WESTOS ##更改samb用户的域名
##即改即生效,无需重启服务
在这里插入图片描述
[root@service ~]# smbclient -L //172.25.254.134
在这里插入图片描述

2.允许selinux访问samba服务

##查看selinux的状态
[root@service ~]# getenforce 
Permissive
##更改selinux的状态为强制模式
[root@service ~]# setenforce 1
[root@service ~]# getenforce 
Enforcing

在这里插入图片描述
##此时无法登陆本地samb用户
在这里插入图片描述
##查看解决方案
[root@service ~]# vim /etc/samba/smb.conf
##设定布尔值; 打开samba用户家目录的访问权限
在这里插入图片描述

[root@service ~]# setsebool -P samba_enable_home_dirs on
##此时便可以登陆本地samb用户
[root@service ~]# smbclient //172.25.254.134/westos -U westos

在这里插入图片描述

  1. samba用户访问的黑名单与白名单
@默认所有主机均可访问本地samba用户家目录
(1)设定白名单

[root@service ~]# vim /etc/samba/smb.conf

#################
hosts allow =172.25.254.134 #设定白名单;只允许134主机访问samb用户家目录
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
[root@client ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
(2)设定黑名单

[root@service ~]# vim /etc/samba/smb.conf
#################
; hosts allow = 172.25.254.134 #注释白名单
hosts deny = 172.25.254.134 #设定黑名单;不允许134主机访问samb用户家目录
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
[root@client ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
5.Samba共享

(1)共享自己建立的目录

##1.建立目录
[root@service ~]# mkdir /westos
[root@service ~]# touch /westos/file{1…3}
##2.共享目录
[root@service ~]# vim /etc/samba/smb.conf
#################
322 [linux] #共享目录名称
323 comment = westos dir share #共享目录说明
324 path = /westos #共享目录的真实路径
在这里插入图片描述
##查看目录的安全上下文

[root@service ~]# ls -Zd /westos/

在这里插入图片描述
##3.修改安全上下文

[root@service ~]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'

##4.刷新

[root@service ~]# restorecon -FvvR /westos/

[root@service ~]# ls -Zd /westos/

在这里插入图片描述
测试:

##匿名用户浏览;可查看到共享的linux目录

[root@service ~]# smbclient -L //172.25.254.134

在这里插入图片描述
(2)共享系统目录

[root@service ~]# ls /mnt

##1.在系统目录/mnt下建立文件

[root@service ~]# touch /mnt/westos{1..3}

##2.共享目录

[root@service ~]# vim /etc/samba/smb.conf 

################
326 [opt] ##共享目录名称
327 comment = mnt directory ##共享目录说明
328 path = /mnt ##共享目录真实路径
在这里插入图片描述
##查看selinux的状态

[root@service ~]# getenforce 

##查看安全上下文
[root@service ~]# ls -Zd /opt

##匿名用户访问
[root@service ~]# smbclient -L //172.25.254.134
##本地用户登陆
[root@service ~]# smbclient //172.25.254.134/opt -U westos
在这里插入图片描述
[root@service ~]# getsebool -a | grep samba
在这里插入图片描述

##3.设定布尔值;打开samaba服务可读权限
[root@service ~]# setsebool -P samba_export_all_ro on
##4.设定布尔值;打开samaba服务可写权限
[root@service ~]# setsebool -P samba_export_all_rw on
##查看samba服务的访问权限
[root@service ~]# getsebool -a | grep samba

在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/opt -U westos

在这里插入图片描述

6.samba共享目录权限的管理

(1).允许所有用户可写

@默认所有用户均不可写
[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
##1.允许所有用户可写
[root@service ~]# vim /etc/samba/smb.conf
#################
325 writable = yes #允许所有用户均可写
在这里插入图片描述
##此时仍然无法删除文件;此时与samba服务无关,只是因为对文件目录没有权限
##2.允许其他用户对该目录以及目录的内容有读写权限;注意:需要直接给目录权限而不是目录中的文件
[root@service ~]# chmod 777 /westos/
[root@service ~]# ll -d /westos
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(2).允许指定用户可写

[root@service ~]# vim /etc/samba/smb.conf
#################
325 ; writable = yes ##注释
326 write list = westos ##仅允许samba用户:westos可写
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(3).允许指定用户组可写

[root@service ~]# vim /etc/samba/smb.conf
#################
326 write list = +westos ##仅允许westos用户组可写(+等同于@)
在这里插入图片描述
##添加附加组westos到student用户中
[root@service ~]# usermod -G westos student
[root@service ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(westos)
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
(4).仅允许指定用户能访问

[root@service ~]# vim /etc/samba/smb.conf
#################
326 ; write list = +westos
327 valid users = student ##仅允许student用户可访问
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(5).仅允许指定用户组能访问

[root@service ~]# vim /etc/samba/smb.conf
#################
327 valid users = @student ##仅允许student用户组可访问
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(6).隐藏目录,但不代表不可用

##默认可以查看到
[root@service ~]# vim /etc/samba/smb.conf
#################
328 browseable = no ##隐藏目录
在这里插入图片描述
测试:

[root@service ~]# smbclient -L //172.25.254.134 -U westos
在这里插入图片描述

(7).指定用户身份为超级用户root

[root@service ~]# vim /etc/samba/smb.conf
#################
325 writable = yes
329 admin users = student ##指定student用户身份为超级用户
在这里插入图片描述
[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
[root@service ~]# ls -l /westos
在这里插入图片描述
(8).允许匿名用户访问

@默认匿名用户不能访问
[root@service ~]# vim /etc/samba/smb.conf
#################
126 map to guest = bad user ##映射用户;将guest用户映射为无身份的用户
330 guest ok =yes ##允许匿名用户(无身份的用户)访问
在这里插入图片描述在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值