要在Linux中通过Samba实现局域网文件共享,需依次完成:一、安装Samba(apt或yum/dnf);二、创建共享目录并设权限(如/srv/samba/shared与2775权限);三、添加Samba用户(useradd + smbpasswd);四、配置smb.conf共享段;五、启动服务并放行防火墙端口。

如果您希望在Linux系统中通过Samba服务实现局域网内文件共享,则需正确安装、配置并启动Samba服务,同时设置共享目录权限与用户访问控制。以下是完成该任务的具体步骤:
一、安装Samba服务
Samba是Linux系统中提供SMB/CIFS协议支持的核心软件包,用于与Windows及其他类Unix系统进行文件和打印共享。未安装时无法启用共享功能。
1、打开终端,执行更新软件包索引命令:sudo apt update(适用于Debian/Ubuntu系)。
2、安装Samba主程序及配套工具:sudo apt install samba samba-common-bin。
3、对于CentOS/RHEL/Rocky Linux系统,运行:sudo yum install samba samba-common samba-client 或 sudo dnf install samba samba-common samba-client。
二、创建共享目录并设置文件系统权限
共享目录需具备可读写权限,且SELinux或AppArmor等安全模块不应阻止Samba进程访问该路径。目录所有者建议设为samba用户组或通用访问组。
1、新建一个专用共享目录,例如:sudo mkdir -p /srv/samba/shared。
2、将目录所有权赋予sambashare组(若不存在则先创建):sudo groupadd sambashare && sudo chgrp sambashare /srv/samba/shared。
3、设置目录权限为组可读写执行:sudo chmod 2775 /srv/samba/shared(其中2表示SGID,确保新文件继承组所有权)。
三、添加Samba用户并配置密码
Samba使用独立于系统用户的密码数据库,需通过smbpasswd命令注册用户,且该用户必须是已存在的Linux本地用户。
1、创建一个系统用户(不登录用,禁用shell):sudo useradd -M -s /usr/sbin/nologin smbuser。
2、为其设置Samba专用密码:sudo smbpasswd -a smbuser(执行后按提示输入并确认密码)。
3、启用该用户:sudo smbpasswd -e smbuser。
四、编辑Samba主配置文件smb.conf
主配置文件定义全局行为与共享资源策略,修改前建议备份原文件。共享段落需明确定义路径、可见性、访问权限及验证方式。
1、备份原始配置:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak。
2、使用文本编辑器打开配置文件:sudo nano /etc/samba/smb.conf。
3、在文件末尾添加如下共享段落:
[shared]
comment = Linux Samba Shared Folder
path = /srv/samba/shared
browseable = yes
read only = no
guest ok = no
valid users = smbuser
create mask = 0664
directory mask = 0775
五、启动并启用Samba服务
配置完成后需重新加载服务,并确保其开机自启。防火墙也必须放行Samba相关端口(TCP 139、445,UDP 137、138),否则客户端无法发现或连接共享。
1、测试配置语法是否正确:sudo testparm(无错误提示方可继续)。
2、重启Samba核心服务:sudo systemctl restart smbd nmbd(部分新版系统仅需smbd)。
3、设置开机自启:sudo systemctl enable smbd nmbd。
4、开放防火墙端口(以UFW为例):sudo ufw allow 'Samba';若使用firewalld:sudo firewall-cmd --permanent --add-service=samba && sudo firewall-cmd --reload。










