要在Linux中通过Samba实现局域网文件共享,需依次完成安装Samba服务、创建并配置共享目录、编辑smb.conf主配置文件、创建Samba用户并关联系统账户、启动及启用smbd与nmbd服务。

如果您希望在 Linux 系统中通过 Samba 实现与 Windows 或其他 Linux 设备的局域网文件共享,则需完成服务安装、配置文件编辑、用户权限设置及服务启停等关键操作。以下是具体实施步骤:
一、安装 Samba 服务
Samba 是实现 SMB/CIFS 协议通信的核心软件包,必须先在目标 Linux 系统中安装,否则无法提供共享服务。
1、更新系统软件包索引:sudo apt update(适用于 Debian/Ubuntu 系统)或 sudo yum makecache(适用于 CentOS/RHEL 7)或 sudo dnf makecache(适用于 CentOS/RHEL 8+ 或 Fedora)。
2、执行 Samba 安装命令:sudo apt install samba samba-common-bin(Debian/Ubuntu)或 sudo yum install samba samba-client samba-common(CentOS/RHEL 7)或 sudo dnf install samba samba-client samba-common-tools(CentOS/RHEL 8+)。
3、验证安装是否成功:运行 smbstatus --version,若输出版本号(如 4.15.13),则表示 Samba 已正确安装。
二、创建共享目录并设置文件系统权限
共享目录需具备可读写权限且 SELinux 或 AppArmor 不阻止访问,否则客户端即使连接成功也无法浏览或写入内容。
1、新建专用共享目录:sudo mkdir -p /srv/samba/shared
2、设置目录属主为 root,属组为 sambashare:sudo chown root:sambashare /srv/samba/shared
3、赋予组读写执行权限:sudo chmod 2775 /srv/samba/shared
4、若系统启用 SELinux,需添加共享上下文:sudo semanage fcontext -a -t samba_share_t "/srv/samba/shared(/.*)?";随后执行 sudo restorecon -Rv /srv/samba/shared
5、确认目录权限状态:ls -ld /srv/samba/shared,应显示 drwxrwsr-x 及正确的上下文类型(如 system_u:object_r:samba_share_t:s0)。
三、配置 smb.conf 主配置文件
smb.conf 是 Samba 的核心配置文件,定义全局参数和共享段行为,任何语法错误都将导致服务启动失败。
1、备份原始配置:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2、使用文本编辑器打开配置文件:sudo nano /etc/samba/smb.conf
3、在 [global] 段落末尾添加以下基础参数:
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
security = user
map to guest = never
dns proxy = no
4、在文件末尾新增共享定义段落:
[shared]
comment = Public Shared Folder
path = /srv/samba/shared
browsable = yes
read only = no
guest ok = no
create mask = 0644
directory mask = 0755
force user = nobody
5、保存退出后,执行语法检查:sudo testparm,若提示 Loaded services file OK,说明配置无误。
四、创建 Samba 用户并关联系统账户
Samba 使用独立于系统密码的加密密码数据库,必须通过 smbpasswd 命令注册用户,否则认证将拒绝所有访问请求。
1、确保对应系统用户已存在:sudo adduser samshare(如尚无该用户)
2、将用户加入 sambashare 组:sudo usermod -aG sambashare samshare
3、为该用户设置 Samba 密码:sudo smbpasswd -a samshare
4、启用该用户:sudo smbpasswd -e samshare
5、确认用户已录入数据库:sudo pdbedit -L,输出中应包含 samshare:1001: 类似条目。
五、启动并启用 Samba 服务
Samba 包含两个关键守护进程:smbd(处理文件与打印共享)和 nmbd(处理 NetBIOS 名称解析),二者均需运行才能完整支持局域网发现与访问。
1、启动 smbd 服务:sudo systemctl start smbd
2、启动 nmbd 服务:sudo systemctl start nmbd
3、设置开机自启:sudo systemctl enable smbd nmbd
4、检查服务状态:sudo systemctl status smbd nmbd,两服务状态栏均应显示 active (running)
5、开放防火墙端口:sudo ufw allow 'Samba'(Ubuntu)或 sudo firewall-cmd --permanent --add-service=samba(CentOS/RHEL),随后重载规则。










