Ubuntu Minimal 设置共享文件夹
一、最简步骤 Samba 共享给 Windows 与 Linux
- 安装必要组件(minimal 通常未预装):sudo apt update && sudo apt install -y samba samba-common-bin cifs-utils
- 创建共享目录并放宽权限(示例:/srv/share):sudo mkdir -p /srv/share && sudo chmod 777 /srv/share
- 备份并编辑配置文件:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
在文件末尾添加:
[share]
path = /srv/share
browseable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
- 语法检查并重启服务:testparm && sudo systemctl restart smbd
- 访问方式:
- Windows:在资源管理器输入 \<Ubuntu_IP>\share
- Linux 客户端测试:smbclient //<Ubuntu_IP>/share -U guest
以上步骤在最小化系统上即可完成 Samba 共享的最简可用配置。
二、带账号密码的访问控制
- 创建系统用户(如用于 Samba 的专用账号):sudo adduser --system --group --shell /usr/sbin/nologin smbuser
- 设置 Samba 专用密码:sudo smbpasswd -a smbuser
- 修改共享段(示例 /etc/samba/smb.conf):
[share]
path = /srv/share
browseable = yes
read only = no
guest ok = no
valid users = smbuser
create mask = 0644
directory mask = 0755
- 使配置生效:testparm && sudo systemctl restart smbd
- 访问测试:smbclient //<Ubuntu_IP>/share -U smbuser
该方式适合需要鉴权的场景,避免匿名读写带来的风险。
三、从 Ubuntu 访问 Windows 共享
- 安装客户端工具:sudo apt install -y cifs-utils
- 创建本地挂载点:sudo mkdir -p /mnt/win_share
- 挂载命令(将 <WIN_IP>、 替换为实际值):
sudo mount -t cifs //<WIN_IP>/ /mnt/win_share -o username=<WIN_USER>,password=<WIN_PASS>,uid=$(id -u),gid=$(id -g),file_mode=0644,dir_mode=0755
- 卸载与开机自动挂载:
- 卸载:sudo umount /mnt/win_share
- 自动挂载(/etc/fstab 追加一行):
//<WIN_IP>/ /mnt/win_share cifs username=<WIN_USER>,password=<WIN_PASS>,uid=$(id -u),gid=$(id -g),file_mode=0644,dir_mode=0755 0 0
以上命令适用于从最小化 Ubuntu 访问 Windows 的 SMB/CIFS 共享。
四、常见问题与排查
- 服务未运行或配置有误:执行 testparm 检查语法,确认 smbd 已启动(sudo systemctl status smbd),必要时重启(sudo systemctl restart smbd)。
- 防火墙阻断:如使用 UFW,放行 Samba 端口(sudo ufw allow samba),或临时关闭防火墙测试(sudo ufw disable)。
- 权限问题:确保共享目录对目标用户可写(如 chmod/chown),Samba 段中 create mask / directory mask 与业务需求匹配。
- 客户端挂载失败:检查凭据、工作组/域、SMB 协议版本(可尝试 vers=2.0/3.0 挂载选项),以及网络连通性。
- 中文乱码与字符集:在 [global] 中设置(示例)unix charset = UTF-8,并确保客户端与服务器字符集一致。