Samba,是种自由软件,用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连结。在目前的版本(v3),不仅可存取及分享SMB的资料夹及打印机,本身还可以整合入Windows Server的网域、扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。
Samba是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS (SMB的增强版本)、 DCE/RPC或者更具体来说MSRPC(网络邻居协议套件)、一种 WINS服 务器(也被称作NetBIOS Name Server(NBNS))、NT 域协议套件(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、NTLM以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议(LDAP)在内的Active Directory Logon服务)。以上这些服务以及协议经常被错误地归类为NetBIOS或者SMB。Samba也能够用于共享打印机。
Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。
一直以来都以为FTP和NFS是局域网文件共享的常用方式,但是在最近接触Samba之后,了解到一些用户需要简化访问学习成本,满足基础的权限控制管理,并支持实时编辑和保存文件,我才明白这些需求使用之前的方法都是很难满足的,而Samba却可以完美的支持上述需求,虽然在开始接触时花了一些时间学习,但把配置和语法梳理清楚之后就很简单了。
Unix与Windows文件共享的最佳方式之一
安装samba
各个平台的安装都蛮简单的,略过
配置samba
建议合理规划目录和用户权限,可以利用用户组来简化授权管理,参见扩展阅读
创建目录(举例)
复制代码代码如下:
mkdir -p /data2/sm
chmod -R 777 /data2/sm
添加用户(举例)
复制代码代码如下:
groupadd dengling
useradd -g dengling -s /sbin/nologin dengling
smbpasswd -a dengling
备份smb配置文件并编辑
复制代码代码如下:
cd /etc/samba
cp smb.conf smb.conf.bak
vi smb.conf
#全局参数
[global]
security = share
lanman auth = Yes
log file = /var/log/samba/log.%m
idmap config * : backend = tdb
guest ok = Yes
hosts allow = 127., 172., 192.168.1., 192.168.3.
cups options = raw
#共享参数
#常用选项
#[shared_name]
# path = # 文件系统路径
# browseable = {yes|no} # 是否可以被查看到
# public = {yes|no} # 是否可被所有人读
# guest ok = {yes|no} # 与 public 相同
# read only = yes # 是否只读
# writeable = yes # 是否可写
# write list = user1, user2 # 可写用户列表
# @group, +group # 可写组列表
# valid users = # 白名单
# invalid users = # 黑名单
[homes]
comment = Home Directories
read only = No
browseable = No
[sheji]
comment = sheji
path = /data2/sm/sheji
valid users = share, shenwei, xuwei, shenjiamei, humengchu, rensiqiang, yeting, tongying, jinbo, zengfanan, fengpeisi
read only = No
create mask = 0775
directory mask = 0775
启动samba
检查语法
复制代码代码如下:
testparm
重启smb服务查看状态
复制代码代码如下:
service smb restart
smbstatus
Windows客户端访问
1.Windows上访问samba
在“计算机”中输入:xxx.xxx.xxx.xxx
2.Windows断开samba共享连接,实在不行可以选择注销或者重启
在【开始】→【运行】→【CMD】回车中输入:net use * /del /y
3.将samba共享的Linux目录映射成Windows的一个驱动器盘符
在【右键计算机】→【映射网络驱动器】→【文件夹XX.XX.XX.XX】