liunx Samba共享

一,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客户端

[root@liunx04 ~]#yum install samba samba-client
[root@liunx04 ~]# systemctl start smb
[root@liunx04 ~]# systemctl enable smb

 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 客户端测试,CMD先清除掉windows客户端上的缓存,使用test1登录是可以写入权限

net use * /d

 三,liunx之间共享挂载

1、服务端配置smb文件

复制代码
 1 vi /etc/samba/smb.conf
 2 [global]
 3         workgroup = SAMBA
 4         security = user
 5 
 6         passdb backend = tdbsam
 7 
 8         printing = cups
 9         printcap name = cups
10         load printers = yes
11         cups options = raw
12 [samba_share]
13         comment = samba service
14         path = /samba/share
15         public = no
16         writable = yes
17 
18 [homes]
19         comment = Home Directories
20         valid users = %S, %D%w%S
21         browseable = No
22         read only = No
复制代码

2、创建共享访问用户以及授权用户共享权限

复制代码
1 [root@liunx04 ~]# useradd test
2 [root@liunx04 ~]# smbpasswd -a test
3 New SMB password:
4 Retype new SMB password:
5 Added user test.
6 [root@liunx04 ~]# pdbedit -L
7 test:1000:
8 [root@liunx04 ~]# setfacl -m u:test:wrx /samba/share/
9 [root@liunx04 ~]# getfacl /samba/share/
复制代码

 3、liunx客户端安装samba-client和cifs-utils

复制代码
 1 [root@liunx05 ~]#yum install samba-client   #安装samba-client
 2 [root@liunx05 ~]#dnf install cifs-utils     #安装cifs-utils
 3 [root@liunx05 ~]# smbclient -U test1 -L 172.21.57.104     #查看共享的目录
 4 Enter SAMBA\test1's password:
 5 
 6 Sharename Type Comment
 7 --------- ---- -------
 8 data Disk                         #共享data目录
 9 print$ Disk Printer Drivers       #共享打印机
10 IPC$ IPC IPC Service (Samba 4.10.16)
11 test1 Disk Home Directories
12 Reconnecting with SMB1 for workgroup listing.
13 
14 Server Comment
15 --------- -------
16 
17 Workgroup Master
18 --------- -------
19 [root@liunx05 ~]#
复制代码

4、客户端挂载测试

复制代码
 1 [root@liunx05 ~]# mkdir //samba_share
 2 [root@liunx05 ~]# mount -t cifs -o username=test,password=admin123 //172.21.57.104//samba_share //samba_share
 3 [root@liunx05 ~]# df -Th
 4 文件系统                    类型      容量  已用  可用 已用% 挂载点
 5 /dev/mapper/centos-root     xfs        20G  1.2G   19G    6% /
 6 devtmpfs                    devtmpfs  3.9G     0  3.9G    0% /dev
 7 tmpfs                       tmpfs     3.9G     0  3.9G    0% /dev/shm
 8 tmpfs                       tmpfs     3.9G   12M  3.9G    1% /run
 9 tmpfs                       tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup
10 /dev/mapper/centos-software xfs        10G   33M   10G    1% /software
11 /dev/mapper/centos-home     xfs        10G   33M   10G    1% /home
12 /dev/mapper/centos-var      xfs        10G  757M  9.3G    8% /var
13 /dev/sda1                   xfs      1014M  142M  873M   14% /boot
14 172.21.57.104:/nfsfile      nfs4       20G  1.3G   19G    7% /mnt/nfsfile
15 tmpfs                       tmpfs     782M     0  782M    0% /run/user/0
16 //172.21.57.104/data        cifs       20G  1.3G   19G    7% /data
17 [root@liunx05 ~]#
复制代码

2、永久挂载 

 

复制代码
 1 [root@liunx05 ~]# vi /etc/fstab
 2 # /etc/fstab
 3 # Created by anaconda on Fri Nov 16 15:37:20 2018
 4 #
 5 # Accessible filesystems, by reference, are maintained under '/dev/disk'
 6 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
 7 #
 8 /dev/mapper/centos-root /                       xfs     defaults        0 0
 9 UUID=98beaa56-52be-4e8e-9e44-4f9536f38207 /boot                   xfs     defaults        0 0
10 /dev/mapper/centos-home /home                   xfs     defaults        0 0
11 /dev/mapper/centos-software /software               xfs     defaults        0 0
12 /dev/mapper/centos-var  /var                    xfs     defaults        0 0
13 /dev/mapper/centos-swap swap                    swap    defaults        0 0
14 #/dev/sr0       /iso    iso9660 defaults        0 0
15 172.21.57.104:/nfsfile  /mnt/nfsfile            nfs     defaults        0 0
16 //172.21.57.104/samba_share  /samba_share                  cifs username=test1,password=admin123  0 0      #挂载                                                                 
复制代码

扩展知识:vim /etc/samba/smb.conf

如果资源可写,但只允许某些用户可写,其他都是只读
write list = admin, root, @staff(用户组)
read list = mary, @students

控制访问对象
valid users = tom,mary,@itcast
invalid users = tom
注意:以上两个选项只能存在其中一个

网络访问控制:
hosts deny = 192.168.0. 拒绝某个网段
hosts allow = 192.168.0.254 允许某个IP
hosts deny = all 拒绝所有
hosts allow = 192.168.0. EXCEPT 192.168.0.254 允许某个网段,但拒绝某个单个IP
注意:deny和allow同时存在,allow优先

参考文档:https://blog.csdn.net/weixin_53946852/article/details/125851113

 

 

  

 

posted @   聆听城市喧哗  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示