当前位置: 首页 > news >正文

Linux中Samba服务配置与使用指南

Linux中Samba服务配置与使用指南

一、Samba服务核心组件

进程功能描述端口
smbd管理共享目录/打印机、认证、SMB资源共享139, 445
nmbdNetBIOS域名解析、共享资源浏览服务137, 138

二、Samba工作原理

  1. 连接请求
    客户端发送协议版本请求 → 服务器验证请求有效性(失败则终止连接)。
  2. 协议协商
    服务器返回支持的协议版本和端口信息。
  3. 认证阶段
    客户端提交认证信息 → 服务器验证(失败则终止连接)。
  4. 资源访问
    认证成功后,客户端通过命令访问共享资源。

三、独立服务器选项

1. security 认证模式
参数值描述
user使用Samba自有数据库验证用户身份
share无需密码,任何人可直接访问共享资源
server由其他SMB服务器代理验证(已弃用)

2. passdb backend 用户数据库类型
参数值描述存储位置
tdbsam使用数据库文件 passdb.tdp/etc/samba/passdb.tdb
ldapsam使用LDAP方式进行验证外部LDAP服务器
smbpasswd使用 smbpasswd 为系统用户设置samba密码/etc/samba/smbpasswd

四、共享目录设置常见参数

参数名描述可选值默认值使用示例/说明
comment共享描述信息任意字符串comment = this is a directory
path定义具体的共享目录共享目录的绝对路径必填项path = /smbshare
browseable是否可以浏览yes / noyesbrowseable = no(隐藏共享)
read only共享权限是否只读yes / noyeswritable冲突,优先级低于writable
writable共享权限是否可写yes / nonowritable = yes(开启写权限)
write list具体读写共享权限的用户列表用户或组名write list = username1, @groupname1
guest ok是否允许匿名yes / nonoguest ok = yes
valid users可以访问共享的samba用户列表用户或组名所有用户valid users = username2, @groupname2
public是否为公共共享yes / nonopublic = yes

五、Samba服务部署流程

1、Samba服务器端

前提

  1. 已经配置好本地的 yum 仓库
  2. 已经禁用 firewall(防火墙)
  3. 已经禁用 selinux
  1. 下载软件包(samba,samba-client)

    yum -y install samba samba-client		# 下载 samba samba-client
    
  2. 创建共享目录和测试文件

    mkdir /smbshare							# 创建共享目录touch /smbshare/file1					# 在共享目录下创建测试用文件
    touch /smbshare/file2
    
  3. 创建并设置为samba用户

    将用户设置为不可登录状态,防止系统用户直接登录系统或通过ssh登录系统

    useradd -s /sbin/nologin rose			# 创建用户,设置为不可登录状态
    useradd -s /sbin/nologin marrysmbpasswd -a rose						# 设置 samba 用户
    smbpasswd -a marrypdbedit -L								# 查看 samba 用户
    

    在这里插入图片描述

  4. 设置用户权限

    setfacl -m u:rose:r-x /smbshare/		# 设置用户 rose 对 /smbshare 的权限为读,执行
    setfacl -m u:marry:rwx /smbshare/		# 设置用户 marry 对 smbshare 的权限为读写,执行
    

    注意:应当要保证samba用户的访问权限和服务设置的权限一致

    保证用户访问权限与服务设置权限一致,是系统安全和稳定运行的核心原则

  5. 编辑配置文件(/etc/samba/smb.conf)

    vim /etc/samba/smb.conf					# 编辑配置文件[myshare]							# 名称,可自定义path = /smbshare			# 路径browseable = yes			# 可以浏览valid users = rose,marry	# 可访问用户列表write list = marry			# 可读写用户列表systemctl restart smb nmb				# 重启服务
    systemctl enable smb nmb				# 下次开机自启
    

    在这里插入图片描述

2、Samba客户端使用

samba对应的文件系统:

cd /usr/lib/modules/3.10.0-957.el7.x86_64/kernel/fs/cifs/
  1. 下载软件包(samba-client cifs-utils)

    yum -y install samba-client cifs-utils		# 下载 samba-client cifs-utils
    
  2. 匿名用户浏览 samba 服务器共享资源列表

    smbclient -L 192.168.100.10					# 匿名访问,直接回车,不需要输入密码
    

    在这里插入图片描述

  3. 匿名用户浏览 samba 服务器共享资源(无法访问)

    smbclient //192.168.100.10/myshare			# 匿名用户不需要密码
    

    在这里插入图片描述

  4. samba 用户 rose(只读)浏览 samba 服务器共享资源

    smbclient //192.168.100.10/myshare -U rose	# 输入 rose 的密码,只读权限
    

    在这里插入图片描述

  5. samba 用户 marry(读写)浏览 samba 服务器共享资源

    smbclient //192.168.100.10/myshare -U marry	# 输入 marry 密码,读写权限
    

    在这里插入图片描述

  6. 将samba服务器共享资源临时挂载到本地目录

    mount -t cifs -o username=marry //192.168.100.10/myshare /smbmount/
    # 交互式挂载mount -t cifs -o username=marry,password=marry,sec=ntlmssp //192.168.100.10/myshare /smbmount/
    # 非交互式挂载
    

    在这里插入图片描述

    在这里插入图片描述

    注意:重新挂载前,先使用 umonut 命令卸载挂载

  7. 将samba服务器共享资源永久挂载到本地目录

    vim /etc/fstab		# 编辑配置文件//192.168.100.10/myshare /smbmount cifs username=rose,password=rose,sec=ntlmssp 0 0# 路径 挂载路径 类型 用户名,密码,安全认证选项 0 0mount -a			# 根据配置文件自动挂载所有文件系统
    

    在这里插入图片描述

  8. 将samba服务器共享资源永久挂载到本地目录,多用户挂载

    vim /etc/fstab		# 编辑配置文件//192.168.100.10/myshare /smbmount cifs multiuser,username=rose,password=rose,sec=ntlmssp 0 0# 路径 挂载路径 类型 多用户挂载选项,用户名,密码,安全认证选项 0 0mount -a			# 根据配置文件自动挂载所有文件系统
    

    在这里插入图片描述

  9. 普通用户临时切换Samba权限

    su - yanyvhang								# 切换用户为 yanyvhang
    cifscreds add 192.168.100.10 -u marry		# 使用 marry 凭证
    

    普通用户 yanyvhang 使用 cifscreds 命令向 samba 服务器提交 samba 用户 marry 的凭证
    此时普通用户 yanyvhang 临时具有 samba 用户 marry 的权限,实现其对 myshare 共享具有 marry 的读写权限

http://www.dtcms.com/a/331812.html

相关文章:

  • YouBallin正式上线:用Web3重塑创作者经济
  • 会议通信系统核心流程详解(底稿1)
  • JVM的逃逸分析深入学习
  • 17.2 修改购物车商品
  • RLVR(可验证奖励的强化学习):大模型后训练的客观评估策略
  • 负载因子(Load Factor) :哈希表(Hash Table)中的一个关键性能指标
  • AI大模型+Meta分析:助力发表高水平SCI论文
  • 多任务并发:进程管理的核心奥秘
  • 【记录】Apache SeaTunnel 系统监控信息
  • 使用ETL工具同步Oracle的表到Doris
  • 使用load data或insert导入10w条数据
  • 51单片机-GPIO介绍
  • 网络组播技术详解
  • 深入理解 `std::any`:C++ 中的万能容器
  • 俄罗斯加强互联网管控,限制 WhatsApp 和 Telegram 通话
  • P5663 [CSP-J2019] 加工零件
  • 腾讯K8S环境【TKE】中,如何驱逐指定pod重新部署?
  • Kafka下载和安装
  • Python:如何处理WRF投影(LCC, 兰伯特投影)?
  • 深度学习 --- ResNet神经网络
  • 【递归完全搜索】CCC 2008 - 24点游戏Twenty-four
  • 【完整源码+数据集+部署教程】膝关节屈伸运动检测系统源码和数据集:改进yolo11-RFAConv
  • pip和dnf只下载不安装离线包
  • 沈帅波出席茅台红缨子高粱节探讨产业赋能新模式
  • Ansys FreeFlow入门:对搅拌罐进行建模
  • 【159页PPT】机械制造行业数字化转型某著名企业U8系统全解决方案(附下载方式)
  • Avalonia_SukiUI明暗主题切换时部分元素颜色不变
  • jetson orin nx(8G)烧录super系统实录
  • Ubuntu下载、安装、编译指定版本python
  • 机器学习--KNN算法