有时候我们想想自行搭建公司内部文件共享系统,Samba是个不错的选择,它简单,却非常实用,便是群晖 NAS(Synology)的文件系统也用它整合,可见它的魅力!

一、Samba简介

它是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

 

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。

Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

 

例如,某台Samba服务器的IP地址为10.0.0.163,对应的工作组名称为preteckserver,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。

\192.168.20.239共享目录名称

\preteckserver共享目录名称

Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。

二、系统环境

系统平台:CentOS release 6.5

Samba版本:
samba-3.5.10-125.el6.x86_64

Samba Server IP:192.168.20.239

防火墙已关闭/iptables: Firewall is not running.

SELINUX=disabled

三、安装Samba服务

1、在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装。

yum install samba samba-client samba-swat

有依赖关系的包samba-common、samba-winbind-clients、libsmbclient将自动安装上去。

2、查看安装状况

rpm -qa | grep samba

3、安装包说明

samba-common-3.5.10-125.el6.x86_64

主要提供samba服务器的设置文件与设置文件语法检验程序testparm

samba-client-3.5.10-125.el6.x86_64

客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集

samba-swat-3.5.10-125.el6.x86_64

基于https协议的samba服务器web配置界面

samba-3.5.10-125.el6.x86_64

服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。

 

4、启动Samba服务器

/etc/init.d/smb start

可以通过/etc/init.d/smb start/stop/restart来启动、关闭、重启Samba服务,启动SMB服务如下所示:

5、查看samba的服务启动情况

# service smb status

6、设置开机自启动

# chkconfig --level 35 smb on

四、配置samba

备份:

cp /etc/samba/smb.conf /etc/samba/smb.confbak

恢复:

cp /etc/samba/smb.confbak /etc/samba/smb.conf

vi /etc/samba/smb.conf

[global]

netbios name = FILE_SERVER

server string = Samba Server Version %v

log file = /var/log/samba/log.%m

max log size = 50

hosts allow = 192.168.1., 192.168.0., 127. ###允许10,20网段和本机访问

cups options = raw

security = user ###设置密码访问

workgroup = WORKGROUP

[homes]

comment = Home Directories

read only = No

browseable = No

[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

browseable = No

[pretech]

comment = pretech

path = /home/share/pretech

public = no

browseable =yes

writable = yes

valid users=pretech

directory mask = 0777

create mask = 0777

[公共文档]

public支持中文

comment = 公共文档

path = /home/share/Public

public = yes

writable = yes

guest ok = yes

directory mask = 0777 #生成目录权录为 0777

create mask = 0777 #生成文件权录为 0777

; printable = no

; write list = +staff

五、添加访问linux共享目录的账号

useradd -s /sbin/nologin zzy

smbpasswd -a zzy #设置账户登录密码

mkdir /home/share/zzy

chcon -R -t samba_share_t /home/share/zzy #设置共享安全,一定要设置

chmod -R 0777 /home/share/zzy

六、重启samba

/etc/init.d/smb restart 或 service smb restart

七、在Windows客户端“运行”窗口中输入,

运行窗口:

\192.168.20.239

或 “网络”中打开“FILE_SERVER”

八、断开windows共享链接,有如下面的两种方法:

net use \192.168.1.1IPC$ /del

net use * /del