Samba 应用 | LINUX-TUTORIAL
samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件。
samba 提供了在不同计算机(即使操作系统不同)上共享服务的能力。
关键词:
samba,selinux
# 1. 安装配置 samba
本文将以一个完整的示例来展示如何配置 samba 来实现 Linux 和 Windows 的文件共享。
目标:假设希望共享 Linux 服务器上的 /share/fs 目录。
# 1.1. 查看是否已经安装 samba
- CentOS:
rpm -qa | grep samba - Ubuntu:
dpkg -l | grep samba
# 1.2. 安装 samba 工具
- CentOS:
yum install -y samba samba-client samba-common - Ubuntu:
sudo apt-get install -y samba samba-client
# 1.3. 配置 samba
samba 服务的配置文件是 /etc/samba/smb.conf,如果没有则 samba 无法启动。
执行以下命令,编辑配置文件:
修改配置如下:
说明:
- 我在这里添加了一个 [fs] 标签,这就是共享区域的配置。
- 这里设置
path属性为/share/fs,意味着准备共享/share/fs目录,需要根据实际需要设置路径。/share/fs目录的权限要设置为 777:chmod 777 /share/fs。browseable、writable等属性就比较容易理解了,即配置共享目录的访问权限。valid users属性指定允许访问的用户,需要注意的是指定的用户必须是 Linux 机器上实际存在的用户。
# 1.4. 创建 samba 用户
创建的 samba 用户必须是 Linux 机器上实际存在的用户。
根据提示输入 samba 用户的密码。当 samba 服务成功安装、启动后,通过 Windows 系统访问机器共享目录时,就要输入这里配置的用户名、密码。
- 查看 samba 服务器中已拥有哪些用户 -
pdbedit -L - 删除 samba 服务中的某个用户 -
smbpasswd -x 用户名
# 1.5. 启动 samba 服务
CentOS 6
CentOS 7
Ubuntu 16.04.3
# 1.6. 为 samba 添加防火墙规则
# 1.7. 测试 samba 服务
输入 samba 用户的密码,如果成功,就会进入 smb: \>。
# 1.8. 访问 samba 服务共享的目录
Windows:
访问:\\<你的ip>\<你的共享路径> :

Mac:
与 Windows 类似,直接在 Finder 中访问 smb://<你的ip>/<你的共享路径> 即可。
# 2. 配置详解
# 2.1. samba 默认配置
你可以从 这里 (opens new window) 获取到默认配置文件:
smb.conf 默认内容如下:
# 2.2. 全局参数 [global]
# 2.3. 共享参数 [共享名]
# 3. 常见问题
# 3.1. 你可能没有权限访问网络资源
问题现象:
- 出现 NT_STATUS_ACCESS_DENIED 错误
- Windows 下成功登陆 samba 后,点击共享目录仍然提示——你可能没有权限访问网络资源。
解决步骤:
- 检查是否配置了防火墙规则
- 关闭 selinux
# 3.2. window 下对 samba 的清理操作
- windows 清除访问 samba 局域网密码缓存
- 在 dos 窗口中输入
control userpasswords2或者control keymgr.dll,然后【高级】/【密码管理】,删掉保存的该机器密码。
- 在 dos 窗口中输入
- windows 清除连接的 linux 的 samba 服务缓存
- 打开 win 的命令行。
- 输入 net use,就会打印出当前缓存的连接上列表。
- 根据列表,一个个删除连接: net use 远程连接名称 /del;或者一次性全部删除:
net use * /del。
# 4. 参考资料
- http://blog.51cto.com/yuanbin/115761
- https://www.jianshu.com/p/750be209a6f0
- https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/Samba.md
- https://blog.csdn.net/lan120576664/article/details/50396511