linux下samba跨平台共享挂载需服务端配置共享目录权限与smb.conf、客户端用mount -t cifs挂载并设fstab自动加载,核心是权限匹配、协议正确、凭据安全。

Linux 系统中使用 Samba 实现跨平台文件共享挂载,核心是“服务端配好共享 + 客户端正确挂载”。重点不在装软件,而在于权限对得上、协议选得准、凭据藏得稳。下面分三块说清楚。
服务端:先让 Linux 把目录“亮出来”
共享不是光改配置就能用,必须满足三个前提:
- 共享目录本身有读写权限(比如
chmod 755 /srv/share或更宽松的775) - 该目录所属用户/组能被 Samba 用户映射到(例如共享路径属
sambauser:sambagroup,而sambauser是已添加的 Samba 用户) -
/etc/samba/smb.conf中定义共享时明确启用写入和认证控制,例如:
path = /srv/share
browsable = yes
writable = yes
valid users = sambauser
create mask = 0664
directory mask = 0775
别忘了重启服务:sudo systemctl restart smbd nmbd,并确认防火墙放行 TCP/UDP 139 和 445 端口。
客户端挂载:命令行方式最可控
在 Ubuntu/Debian 或 CentOS/RHEL 的 Linux 客户端上,推荐用 mount -t cifs 挂载,比 GUI 更稳定、可复用、易自动化。
- 先创建本地挂载点:
sudo mkdir -p /mnt/winshare - 用凭证文件避免密码明文(安全必需):
新建/etc/samba/creds,内容为:
username=sambauser
password=your_secure_pass
domain=WORKGROUP
然后设权限:sudo chmod 600 /etc/samba/creds - 执行挂载:
sudo mount -t cifs //192.168.1.100/myshare /mnt/winshare -o credentials=/etc/samba/creds,uid=1000,gid=1000,iocharset=utf8,file_mode=0644,dir_mode=0755
其中 uid/gid 填你本地普通用户的 ID(可用 id -u 查),确保挂载后你能直接读写文件,而不是只能 root 访问。
开机自动挂载:靠 /etc/fstab 配置
想每次开机就挂上?把上面那条 mount 命令转成 fstab 条目即可,但注意格式要严格:
//192.168.1.100/myshare /mnt/winshare cifs credentials=/etc/samba/creds,uid=1000,gid=1000,iocharset=utf8,file_mode=0644,dir_mode=0755,x-systemd.automount 0 0关键点:
- 第6字段(最后一个 0)表示不备份,第5字段(倒数第二个 0)表示不检查磁盘,这两个必须是 0
- 加上
x-systemd.automount可让系统延迟挂载(等网络就绪后再试),避免开机卡住 - 修改后运行
sudo mount -a测试语法是否正确,无报错再重启验证
Windows 和 macOS 也能直连,但 Linux 客户端挂载更灵活
Windows 资源管理器地址栏输入 \192.168.1.100myshare 即可访问;macOS 用“访达 → 连接到服务器 → smb://192.168.1.100/myshare”。但它们只是临时访问,不像 Linux 的 mount 那样能融入本地文件系统、支持脚本操作、配合 rsync 或 inotify 等工具做自动化同步。如果你需要开发、日志分析或嵌入式调试这类场景,Linux 主动挂载才是正解。











