Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件, 以实现文件共享和打印机服务共享, 是模仿Windows网上邻居的SMB的通讯协议, 将Linux操作系统"假装成"Windows操作系统, 通过网上邻居的方式来进行文件传输的。
1. 概述
1.1 服务器组件
samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务, 而nmbd则提供了NetBIOS名称服务和浏览支持, 帮助SMB客户定位服务器, 处理所有基于UDP的协议。
1.2 配置文件
-
/etc/samba/smb.conf 这是samba的主要配置文件, 基本上仅有这个文件, 而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置, 如工作组、NetBIOS名称和密码等级, 以及共享目录的相关设置, 如实际目录、共享资源名称和权限等两大部分。
-
/etc/samba/lmhosts 早期的 NetBIOS name 需额外设定, 因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能! 只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔! 不要跟 /etc/hosts 搞混了! 目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name, 因此这个档案不设定也无所谓。
-
/etc/sysconfig/samba 提供启动 smbd, nmbd 时, 你还想要加入的相关服务参数。
-
/etc/samba/smbusers 由于 Windows 与 Linux 在管理员与访客的账号名称不一致, 例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系, 可使用这个档案来设定
-
/var/lib/samba/private/{passdb.tdb,secrets.tdb} 管理 Samba 的用户账号/密码时, 会用到的数据库档案;
-
/usr/share/doc/samba-<版本> 这个目录包含了 SAMBA 的所有相关的技术手册喔! 也就是说, 当你安装好了 SAMBA 之后, 你的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了! 值得高兴吧! ^_^, 所以, 赶紧自行参考喔!
1.2 安装samba
yum -y install samba samba-client samba-common
rpm -qa | grep samba
2. 配置Samba
2.1 创建共享文件夹
mkdir -p /data/mark
# 修改文件夹权限
chown mark:mark /data/mark
chmod 770 /data/mark
2.2 创建用户
# 添加用户
useradd -s /sbin/nologin mark
#添加samba密码
smbpasswd -a mark
2.3 配置
[mark]
comment = Shared Directories
path = /data_backup/shared/backup/mark
admin users = mark
valid users = @mark
browseable = yes
writable = yes
create mask = 0777
directory mask = 0777
force directory mode = 0777
force create mode = 0777
# user模式不需要输入用户名和密码登录
[global]
security = user
map to guest = bad user
[myshared]
guest ok = yes
2.4 启动服务
systemctl start smb
systemctl start nmb
3. 问题
3.1 Win10无法访问Samba共享文件夹
-
打开文件共享
-
勾选SMB 1.0/CIFS 文件共享支持