liunx Samba共享

发布时间 2023-06-08 16:51:02作者: 聆听城市喧哗

一,Samba共享服务的匿名访问

注意:

systemctl stop firewalld       #关闭防火墙
systemctl disable firewalld   #开机不启用火墙
setenforce 0                       #关闭SELinux

>1、如果不关闭防火墙和SEliunx则需要将smb服务添加白名单

[root@liunx04 nfsfile]# firewall-cmd --zone=public --permanent --add-service=samba    #放行samba服务
success
[root@liunx04 nfsfile]# firewalld-cmd --reload                                        #重启加载

>2、如果是是共享/home目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux安全上下文所带来的限制。设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可:

[root@liunx04 nfsfile]# mkdir /home/data
[root@liunx04 nfsfile]# chown -Rf test1:test1 /home/data/
[root@liunx04 nfsfile]# semanage fcontext -a -t samba_share_t /home/data/
[root@liunx04 nfsfile]# restorecon -Rv /home/data/
restorecon reset /home/data context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:user_home_dir_t:s0
[root@liunx04 nfsfile]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off  
[root@liunx04 nfsfile]# setsebool -P samba_enable_home_dirs on       

1、安装samba 和samba客户端

dnf install samba samba-client

 2、安装完毕后打开Samba服务程序的主配置文件,具体配置文件的参数请参考:https://www.linuxprobe.com/basic-learning-12.html

 vim /etc/samba/smb.conf        #编辑共享主配置文件

[global]            #全局参数
workgroup = SAMBA    #工作组名称
security = user        #安全验证的方式,总共有4种

passdb backend = tdbsam    #定义用户后台的类型,总共有3种
map to guest = Bad User      #开启匿名用户
[data]                   #共享的文件
path = /nfsfile          #共享文件夹路径
public=yes               #公开访问
browseable=yes           #能够访问
writable=yes             #允许写入权限

systemctl restart smb         #重启smb服务

3、通过windows客户端测试匿名用户可以读写

 二,Samba共享服务的身份验证

1、配置Samba配置文件信息

vim /etc/samba/smb.conf
 1 [global]         #全局参数
 2         workgroup = SAMBA      #工作组名称
 3         security = user         #安全验证的方式,总共有4种
 4 
 5         passdb backend = tdbsam     #定义用户后台的类型,总共有3种
 6 [data]                                #共享的文件
 7         path = /nfsfile              #共享文件夹路径
 8         public=yes                   #公开访问          
 9         browseable=yes                 #能够访问
10         writable=no                   #不允许写入权限也可以将这删除掉11         valid users=test1,test2       #允许test1,test2访问权限 
12         write list=test1              #允许test1写入权限

share:但安全性很差

user:代表登录Samba服务时需要使用账号密码进行验证,通过后才能获取到文件。这是默认的验证方式,最为常用。

domain:代表通过域控制器进行身份验证,用来限制用户的来源域。

server:代表使用独立主机验证来访用户提供的密码。这相当于集中管理账号,并不常用。

2、创建用户

 1 [root@liunx04 nfsfile]# useradd test1           # 创建用户test1
 2 [root@liunx04 nfsfile]# useradd test2           #创建用户test2
 3 [root@liunx04 nfsfile]# smbpasswd -a test1  #设置密码
 4 New SMB password:         #输入密码
 5 Retype new SMB password:   #再次输入密码
 6 Added user test1.
 7 [root@liunx04 nfsfile]# smbpasswd -a test2    #设置test2用户密码
 8 New SMB password:   #输入密码
 9 Retype new SMB password:   #再次输入密码  
10 Added user test2.
11 [root@liunx04 nfsfile]# pdbedit -L       #显示所有SMB用户
12 test1:1000:  
13 test2:1001:
14 [root@liunx04 nfsfile]# systemctl restart smb #重启smb服务

3、在windows 客户端测试,先清除掉windows客户端上的缓存

1 net use * /d

使用test1登录是可以写入权限