Linux上设置共享文件夹(超具体只看这篇就够啦)

[复制链接]
发表于 2026-10-3 10:54:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Linux 和 Windows 之间传文件,最实用的不是挂载 NFS,而是 Samba。这篇用 Ubuntu 22.04 做示例,把从装包、起服务、加用户、设共享目录、到客户端访问的整条链路走一遍,末尾列几个必踩的坑。

一、先分清 NFS 和 Samba

Linux 上做文件共享通常两条路:

  • NFS(Network File System):分布式文件系统协议,客户端访问远程服务器上的文件像访问本地一样,允许多机同时读写,对文件系统是透明访问。适合 Linux ↔ Linux。
  • Samba:开源软件包,在 Linux / UNIX 上实现 SMB/CIFS 协议。SMB/CIFS 是局域网里共享文件、打印机、资源的协议。这是 Windows ↔ Linux 的唯一通用解。

本文讲第二种。Ubuntu 22.04 为例,换别的发行版差别不大。

二、安装软件包

先查有没有装 samba:

dpkg -l | grep samba

默认没装,直接装:

sudo apt install samba

如果只想用命令挂载,到这步环境就够了。想在文件管理器(Nautilus)图形界面里访问,还得有 gvfs——一般 Linux 默认带了。gvfs 是虚拟文件系统,作用是把本地文件系统、FTP、SFTP、WebDAV 等底层存储统一映射成一个虚拟文件系统,用户用一套接口访问。

三、检查 smbd 和 nmbd 服务

smbd / nmbd 是 samba 的两个核心守护进程,缺一个功能就不全,有些 Linux 默认把它们停了,先查状态:

systemctl status smbd.service
systemctl status nmbd.service
  • smbd 是主服务,负责文件和打印机共享,其他机器靠它访问共享目录。
  • nmbd 是 NetBIOS 名称服务,负责在局域网里识别和解析计算机名,Windows 网邻里能看到这台机器全靠它。

停了就启动并设开机自启:

sudo systemctl start smbd.service
sudo systemctl enable smbd.service
sudo systemctl start nmbd.service
sudo systemctl enable nmbd.service

四、检查用户组

加入 sambashare 组才有共享权限——能读、能写、能改共享目录里的文件。

groups $USER      # 看当前用户

不在组里就加进去,然后注销重登录再继续:

sudo usermod -a -G sambashare 用户名

五、设置 samba 密码

要用账号密码登录,光有系统密码不够,得单独设一个 samba 口令:

sudo smbpasswd -a 用户名

输两遍密码就设好了。忘了也别慌,再跑一次这条命令重设就行。

六、用 net usershare 设置共享

前面的铺垫都是为这步。加一条共享:

net usershare add 共享名 /home/kylin/文件名 备注名 Everyone:R guest_ok=y

常用参数:

  • Everyone:R → 所有人只读;
  • Everyone:F → 所有人可写;
  • Everyone → 拒绝访问;
  • guest_ok=y → 允许匿名访问;
  • guest_ok=n → 不允许匿名访问。

其他参数看 man net usershare。

七、用 smbclient 访问共享

只想在命令行访问,装 smbclient:

sudo apt install smbclient
smbclient -L //服务器IP -U 用户名

进去之后是类 ftp 的交互,get / put / ls / quit 都能用。

八、反过来访问 Windows 共享

访问别的 IP 的共享,流程和本地共享有区别:

  • 先互相 ping 通——虚拟机场景记得用桥接模式,NAT 模式下局域网其他机器未必通得到;
  • 检查 Windows 防火墙(SMB 走 445 端口)和 Linux 侧防火墙(多数 Linux 默认没开防火墙,但装了 ufw 的要查)。

两点都通了,再用 smbclient 或文件管理器访问:smb://服务器IP。

九、必踩的三个坑

  1. 设了可写权限,但目录 other 没有 w 权限 → 无论命令行还是图形界面都会报"没有权限"。共享目录本身和它父目录的 other 可执行位(x)也得开。
  2. 匿名访问失败 → 除了 guest_ok=y,还得保证父目录权限允许进入。
  3. Windows 能看见但进不去 → 八成是防火墙或端口没放,445 通不通先测。

总结

Linux 共享文件夹完整流程:装 samba / gvfs → 起 smbd + nmbd → 用户进 sambashare 组 → smbpasswd 设口令 → net usershare add 加共享 → smbclient 或 smb:// 访问。记住"目录 other 权限"和"双向防火墙"这两个高频坑,基本一次配通。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表