17370845950

Linux怎么配置Samba文件共享_Linux与Windows内网互传设置【指南】
Samba是Linux与Windows内网文件互传的标准方案,需依次完成安装、配置全局及共享参数、创建共享目录并设权限、添加Samba认证用户、启动服务、配置防火墙、Windows端访问验证。

如果您希望在Linux服务器与Windows客户端之间实现内网文件互传,Samba是标准且兼容性良好的解决方案。以下是完成Samba文件共享配置的具体操作步骤:

一、安装Samba服务组件

Samba服务依赖核心软件包,需确保smbd和nmbd进程可运行。不同发行版使用对应包管理器安装。

1、对于基于RHEL/CentOS/Rocky Linux/AlmaLinux的系统,执行:
sudo yum install samba samba-client samba-common -y

2、对于Debian/Ubuntu系统,执行:
sudo apt update && sudo apt install samba samba-common-bin cifs-utils -y

3、验证安装结果:
sudo systemctl list-unit-files | grep smb

二、配置全局及共享段参数

编辑主配置文件可定义网络行为、安全模式与共享资源策略。关键项包括工作组名、安全级别、字符集及共享目录权限控制。

1、备份原始配置:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

2、使用vi或nano打开配置文件:
sudo vi /etc/samba/smb.conf

3、在[global]段末尾添加以下基础设置:
workgroup = WORKGROUP
server string = Samba File Server
security = user
map to guest = bad user
log file = /var/log/samba/%m
max log size = 50
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
dns proxy = no
unix charset = UTF-8
dos charset = CP936

4、在文件末尾新增共享定义(以/shared为例):
[shared]
  comment = Internal File Share
  path = /srv/samba/shared
  browsable = yes
  writable = yes
  guest ok = no
  read only = no
  valid users = @sambashare

三、创建共享目录并设置文件系统权限

Linux文件系统权限与Samba访问控制独立生效,必须同时满足二者才允许读写。目录需归属指定组且启用SGID确保新建文件继承组权限。

1、创建共享路径:
sudo mkdir -p

/srv/samba/shared

2、创建专用用户组:
sudo groupadd sambashare

3、设置目录属组与权限:
sudo chgrp sambashare /srv/samba/shared
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

四、添加Samba认证用户

Samba用户必须是已存在的Linux系统用户,且需通过smbpasswd注册密码。该密码独立于系统登录密码,仅用于SMB协议认证。

1、创建系统用户(不分配shell,禁用登录):
sudo useradd -M -s /sbin/nologin alice
sudo useradd -M -s /sbin/nologin bob

2、将用户加入sambashare组:
sudo usermod -aG sambashare alice
sudo usermod -aG sambashare bob

3、为用户设置Samba密码:
sudo smbpasswd -a alice
sudo smbpasswd -a bob

4、确认用户已注册:
sudo pdbedit -L

五、启动并启用Samba服务

Samba由两个核心守护进程组成:smbd提供文件/打印服务(TCP 139/445),nmbd处理NetBIOS名称解析(UDP 137/138)。两者均需运行。

1、启动服务:
sudo systemctl start smb nmb

2、设为开机自启:
sudo systemctl enable smb nmb

3、检查服务状态:
sudo systemctl status smb nmb

4、测试配置语法是否正确:
sudo testparm

六、配置防火墙放行Samba端口

默认防火墙会阻止Samba通信,必须显式开放对应服务或端口。推荐使用service方式,避免硬编码端口。

1、对于firewalld(RHEL系):
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

2、对于ufw(Debian/Ubuntu):
sudo ufw allow 'Samba'

3、验证规则生效:
sudo firewall-cmd --list-services | grep samba

七、Windows客户端访问验证

Windows资源管理器原生支持SMB协议,无需额外安装客户端。访问时需使用正确的UNC路径格式,并确保凭据匹配Samba用户。

1、在Windows运行框中输入:
\\\shared

2、当提示凭据时,输入:
用户名格式为:服务器主机名\用户名(如:centos8\alice)或直接填用户名alice

3、若首次访问失败,尝试在Windows中启用“SMB 1.0/CIFS 文件共享支持”(控制面板→程序→启用或关闭Windows功能)

4、挂载为网络驱动器(可选):
右键“此电脑”→“映射网络驱动器”→选择盘符→输入\\\shared→勾选“登录时重新连接”