Samba是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。它使执行UNIX系统的机器能与执行Windows系统的电脑分享驱动器与打印机。Samba属于GNU Public License(简称GPL)的软件;因此,你可以合法且免费地使用它。什么是SMB?SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议,而Samba则是将SMB协议搬到UNIX上来应用;Samba的核心是SMB(Server Message Block)协议。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,更能与全世界的电脑分享资源;因为互联网上千千万万的主机所使用的通讯协议就是TCP/IP。SMB是在会话层(ession layer)和表示层(presentation layer)以及小部分应用层(applicationlayer)的协议。SMB使用了NetBIOS的应用程序接口(Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为CIFS(Common Internet File System), 并且加入了许多新的特色,而Samba亦支持了NT Lan Manager 0.12等 SMB 的延伸协议,这是得Samba具有管理NT网域的能力。
假如访问需求如下
/smb/share允许Share、SharePC访问,/smb/company允许SharePC访问。
共享名 路径 权限
SHAREDOC /smb/share 仅允许特定用户进行读写访问
COMPANYDOC /smb/company 仅允许特定用户进行读写访问
1. 安装Samba
# yum -y install samba samba-client samba-common
查看安装版本信息
# rpm -qi samba
2. 配置Samba服务器
创建共享目录
# mkdir -p /smb/share
# mkdir -p /smb/company
配置内核参数
# ulimit -n 16384
# vi /etc/security/limits.conf
在最后加入以下内容
* - nofile 16384
Tip: 这主要是避免在启动Samba时出现以下警告信息:
rlimit_max: increasing rlimit_max (1024) tominimum Windows limit (16384)
备份原有的配置文件
# cd /etc/samba/
# cp smb.conf smb.conf.bk
删除原有所有内容,添加如下内容:
# vi /etc/samba/smb.conf
3. 创建用户并分配权限
创建操作系统用户
# useradd Share
# useradd SharePC
修改操作系统用户的密码
# passwd Share
# passwd SharePC
创建SAMBA用户
# smbpasswd -a Share
# smbpasswd -a SharePC
4. 防火墙关闭
关闭firewall
# systemctl stop firewalld.service //停止firewall
# systemctl disable firewalld.service //禁止firewall开机启动
或者关闭iptables
# /etc/init.d/iptables stop
设置SELINUX=disabled(需要重启电脑)
# vi /etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
5. 开机启动smb服务
# systemctl restart smb
# systemctl enable smb
# systemctl status smb