Rocky9.6 Samba搭建学习

samba搭建学习

  • [一、Samba 介绍](#一、Samba 介绍)
  • [二、Samba 安装配置](#二、Samba 安装配置)
    • [1. 安装Samba](#1. 安装Samba)
    • [2. 配置文件介绍](#2. 配置文件介绍)
    • [3. 创建共享目录和用户账号](#3. 创建共享目录和用户账号)
    • [4. 配置文件修改](#4. 配置文件修改)
    • [5. 启动Samba程序](#5. 启动Samba程序)
    • [6. 客户端验证](#6. 客户端验证)
      • [6.1. windows客户端验证](#6.1. windows客户端验证)
      • [6.2. linux客户端测试](#6.2. linux客户端测试)

一、Samba 介绍

Samba 是基于SMB 协议开发的用于解决Linux 系统与 Windows 系统之间的文件共享问题。

二、Samba 安装配置

1. 安装Samba

复制代码
dnf -y install samba

2. 配置文件介绍

/etc/samba/smb.conf:

clike 复制代码
#全局配置段
[global]
        workgroup = SAMBA		# 所属工作组名称(需与Windows客户端一致)
        security = user			# 安全级别:用户级验证(需Samba账户密码,且本地账号存在)
        passdb backend = tdbsam		# 密码存储后端:轻量级TDB数据库(单机首选)

        printing = cups				# 打印机系统:使用CUPS(Linux标准打印服务) 
        printcap name = cups		# 读取CUPS的打印机列表
        load printers = yes			# 自动加载CUPS中的打印机
        cups options = raw			# CUPS打印选项:原始模式(兼容多数打印机)
        
# 用户家目录共享(每个 Samba 用户自动生成专属家目录共享)
[homes]
        comment = Home Directories		# 共享描述(Windows中显示的备注)
        valid users = %S, %D%w%S		# 仅允许用户自己访问(%S=当前用户名,域环境兼容写法)
        browseable = No					# 不在网络邻居中显示(隐私性,需手动输入路径访问)
        read only = No				    # 允许读写操作(用户可修改自己的家目录)
        inherit acls = Yes				# 新文件自动继承父目录的ACL权限(适配权限精细化控制)

# 打印机共享
[printers]
        comment = All Printers			# 共享描述:所有打印机
        path = /var/tmp					# 打印任务临时存储路径 
        printable = Yes					# 允许打印(核心参数,标记为打印机共享)
        create mask = 0600			    # 打印文件的权限:仅所有者可读写
        browseable = No					# 不在网络邻居中显示(避免无关用户看到)

# 打印机驱动共享
[print$]
        comment = Printer Drivers				# 共享描述:打印机驱动
        path = /var/lib/samba/drivers			# 驱动文件存储路径
        # printadmin is a local group			
        write list = printadmin root			# 仅printadmin组和root用户可写入(管理驱动)
        force group = printadmin					# 新建文件的所属组强制为printadmin
        create mask = 0664							# 驱动文件权限:所有者/组可读写,其他只读

3. 创建共享目录和用户账号

创建不能登录系统的账号

复制代码
useradd -M -s /sbin/nologin  smbuser

创建Samba 账户,前提是系统中必须存在此用户

复制代码
pdbedit -a -u smbuser
clike 复制代码
new password:					# 输入密码
retype new password:			# 确认密码
Unix username:        sambauser
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-872321202-3951748688-4113238925-1001
Primary Group SID:    S-1-5-21-872321202-3951748688-4113238925-513
Full Name:
Home Directory:       \\LOCALHOST\sambauser
HomeDir Drive:
Logon Script:
Profile Path:         \\LOCALHOST\sambauser\profile
Domain:               LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sat, 29 Nov 2025 10:08:43 CST
Password can change:  Sat, 29 Nov 2025 10:08:43 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

使用pdbedit -L 查看用户

创建共享目录

复制代码
mkdir /share
chown smbuser.smbuser /share

4. 配置文件修改

/etc/samba/smb.conf:

clike 复制代码
[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
# 用户没有家目录,所有这里注释掉即可,默认是会创建家目录共享
#[homes]
#       comment = Home Directories
#       valid users = %S, %D%w%S
#       browseable = No
#       read only = No
#       inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        # printadmin is a local group
        write list = printadmin root
        force group = printadmin
        create mask = 0664
        directory mask = 0775
[share]
        comment = shared file			# 共享文件描述
        path = /share					# 共享文件目录
        public = no						# 是否允许匿名访问
        writable = yes					# 是否允许对共享目录进行读写操作

5. 启动Samba程序

测试配置文件可用性

复制代码
testparm
clike 复制代码
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.

启动

复制代码
systemctl enable  smb --now

6. 客户端验证

非强制要求关闭防火墙和selinux

复制代码
systemctl disable firewalld --now
setenforce 0
grubby --update-kernel ALL --args selinux=0
grubby --update-kernel ALL --remove-args selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6.1. windows客户端验证

连接smb服务器

输入账号密码

创建文件测试

6.2. linux客户端测试

安装客户端软件

复制代码
dnf -y install samba-client cifs-utils
  • samba-client:Linux 系统中 Samba 套件的客户端工具包
  • cifs-utils: Linux 系统中用于挂载和管理 CIFS/SMB 文件系统的工具集

查看smb服务器共享目录

复制代码
smbclient -L //192.168.25.135 -U smbuser
clike 复制代码
Password for [SAMBA\smbuser]:

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        share           Disk      shared file
        IPC$            IPC       IPC Service (Samba 4.21.3)
SMB1 disabled -- no workgroup available

访问远程共享目录(交互模式)

复制代码
smbclient //192.168.25.135/share -U smbuser

输入help可以查看支持的命令,例如: ls查看当前目录,get 下载文件、pull上传文件等。

clike 复制代码
Password for [SAMBA\smbuser]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sat Nov 29 09:13:05 2025
  ..                                  D        0  Sat Nov 29 09:13:05 2025
  test.txt                            A        0  Sat Nov 29 09:12:54 2025

                19855360 blocks of size 1024. 18314344 blocks available

将共享目录挂载到本地

非交互挂载 mount.cifs //192.168.25.135/share /mnt/smbshare -o username=smbuser,password=123456

复制代码
# 创建挂载目录
mkdir -p /mnt/smbshare
# 挂载共享文件,需要输入密码
mount.cifs //192.168.25.135/share  /mnt/smbshare -o username=smbuser
# 查看是否挂载成功
mount | grep /mnt/smbshare
clike 复制代码
//192.168.25.135/share on /mnt/smbshare type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=smbuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.25.135,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,reparse=nfs,nativesocket,symlink=native,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1)

永久挂载(配置 fstab)
/etc/fstab:

clike 复制代码
//192.168.25.135/share  /mnt/smbshare  cifs  username=smbuser,password=123456    0 0
复制代码
mount -a
mount | grep /mnt
clike 复制代码
//192.168.25.135/share on /mnt/smbshare type cifs (rw,relatime,vers=3.1.1,cache=strict,upcall_target=app,username=smbuser,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.25.135,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,reparse=nfs,nativesocket,symlink=native,rsize=4194304,wsize=4194304,bsize=1048576,retrans=1,echo_interval=60,actimeo=1,closetimeo=1)
相关推荐
大树888 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠8 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质8 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush48 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5209 小时前
Linux 11 动态监控指令top
linux
Inhand陈工9 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智10 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩10 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_10 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈10 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix