首页 > 代码库 > 企业中Samba简单应用

企业中Samba简单应用

一、简介

  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,对应的工作组名称为davidsamba,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。
  \\172.16.7.20\共享目录名称

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

二、系统环境

系统平台:CentOS release 6.5 (Final)

Samba版本:samba-3.6.9-169.el6_5.x86_64

Samba Server IP:172.16.7.20

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

SELINUX=disabled

三、安装Samba服务

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

# yum install samba samba-client samba-swat

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

2、查看安装情况

3、安装包说明

samba-common-3.6.9-169.el6_5.x86_64              //主要提供samba服务器的设置文件与设置文件语法检验程序testparm
samba-client-3.6.9-169.el6_5.x86_64                    //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集
samba-swat-3.6.9-169.el6_5.x86_64                //基于https协议的samba服务器web配置界面
samba-3.6.9-169.el6_5.x86_64                        //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

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

 

4、启动Samba服务器

可以通过/etc/init.d/smb start/stop/restart来启动、关闭、重启Samba服务

四、配置Samba服务

Samba的主配置文件为/etc/samba/smb.conf

主配置文件由两部分构成

· Global Settings (55-245行)

  该设置都是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的。

· Share Definitions (246-尾行)

  该设置针对的是共享目录个别的设置,只对当前的共享资源起作用。


 

案例一:

 

a. 需求

1. 某公司有5部门,分别为:运维OPS Dept)、研发部(DEV Dept)、测试部(SST Dept)、需求部SRA Dept)
2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。
3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。
4. 公用文件夹中分为存放工具的文件夹和存放各部门共享文件的文件夹。
5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。
6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及 文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门共享文件夹时, 只能查看不能修改删除新建。对于存放工具的文件夹,只有管理员有权限,其他用户只能访问。

b. 规划

根据公司需求情况,现做出如下规划:
1. 在系统分区时单独分一个/tech的区,在该区下有以下几个文件夹: OPS DEV SST SRA和Share。在Share下又有以下几个文件夹:OPS DEV SST SRA
2. 各部门对应的文件夹由各部门自己管理,Tools文件夹由管理员维护。
3. OPS管理员账号:opsadmin;普通用户账号:opsuser。
   DEV管理员账号:devadmin;普通用户账号:devuser。
   SST管理员账号:sstadmin;普通用户账号:sstuser。
   SRA管理员账号:sraadmin;普通用户账号:srauser。
 

c. 新建用户

使用useradd命令新建系统账户,然后再使用smbpasswd –a建立SMB账户

useradd -s /sbin/nologin opsadmin          

useradd -g opsadmin -s /sbin/nologin opsuser

useradd -s /sbin/nologin devadmin            

useradd -g devadmin -s /sbin/nologin devuser     

useradd -s /sbin/nologin sstadmin

useradd -g sstadmin -s /sbin/nologin sstuser

useradd -s /sbin/nologin sraadmin         

useradd -g sraadmin -s /sbin/nologin srauser   

 

smbpasswd -a opsadmin

smbpasswd -a opsuser

smbpasswd -a devadmin

smbpasswd -a devuser

smbpasswd -a sstadmin

smbpasswd -a sstuser

smbpasswd -a sraadmin

smbpasswd -a srauser

 

d、新建目录

mkdir /tech

cd /tech/

mkdir OPS DEV SST SRA  SHARE

cd  SHARE

mkdir OPS DEV SST SRA

e、更改目录属性

cd  /tech

chown opsadmin.opsadmin OPS

chown devadmin.devadmin DEV

chown sstadmin.sstadmin SST   

chown sraadmin.sraadmin SRA   

chown admin.admin SHARE 

cd SHARE

chown opsadmin.opsadmin OPS

chown devadmin.devadmin DEV

chown sstadmin.sstadmin SST   

chown sraadmin.sraadmin SRA   

chmod 1775 OPS DEV SST SRA

 

f、修改samba配置文件

[global]

        workgroup = WORKGROUP

        server string = Samba Server Version %v

        include = /etc/samba/%U.smb.conf

        include = /etc/samba/%G.smb.conf

        hosts allow = 127. 192.168.8.  172.16.7.

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

        max log size = 50

        security = user

        passdb backend = tdbsam

        load printers = yes

        cups options = raw


 

/bin/cp /etc/samba/smb.conf /etc/samba/opsadmin.smb.conf

/bin/cp /etc/samba/smb.conf /etc/samba/devadmin.smb.conf

/bin/cp /etc/samba/smb.conf /etc/samba/sraadmin.smb.conf

/bin/cp /etc/samba/smb.conf /etc/samba/sstadmin.smb.conf

cat /etc/samba/opsadmin.smb.conf





# share setting

[ops] 

comment = This is a directory of OPS.

path = /tech/OPS

browseable = yes

writable = yes 

public = no 

admin users = opsadmin

valid users = @opsadmin

create mask = 0750

directory mask = 0750

[dev] 

comment = This is a directory of DEV.

path = /tech/DEV

browseable = no

writable = yes 

public = no 

admin users = devadmin

valid users = @devadmin

create mask = 0750

directory mask = 0750

[sst] 

comment = This is a directory of SST.

path = /tech/SST

browseable = no

writable = yes 

public = no 

admin users = sstadmin

valid users = @sstadmin

create mask = 0750

directory mask = 0750

[sra] 

comment = This is a directory of SRA.

path = /tech/SRA

browseable = no

writable = yes 

public = no 

admin users = sraadmin

valid users = @sraadmin

create mask = 0750

directory mask = 0750

[SHARE] 

comment = This is a directory of SHARE.

path = /dev/SHARE

browseable = yes

writable = yes 

public = no

valid users = @opsadmin,@devadmin,@sstadmin,@sraadmin

create mask = 0750

directory mask = 0750

重新启动samba 

 

g、测试

\\172.16.7.20

 

五、将共享目录映射成Windows的驱动器

将Samba共享的public目录,映射成 Windows 的一个驱动器盘符:

a. 右击“计算机”-->“映射网络驱动器”

 

 

 

Tips:

在windows下通过“\\ip地址”的方式访问其它文件资源时,一般第一次需要输入密码,以后就无需输入密码直接登陆了,那么如果我们要切换到其它Samba用户怎么办呢?可以在windows下执行如下指令实现:
首 先通过开始-->运行-->cmd 输入:“net use”命令查看现有的连接,然后执行“net use \\Samba服务器IP地址或者netbios名称\ipc$  /del”,删除Samba服务器已经建立的连接。或者执行“net use * /del”将现在所有的连接全部删除。最后,再次执行“\\ip地址”时,就可以切换用户了。

 


本文出自 “xixihaha” 博客,请务必保留此出处http://oceanszf.blog.51cto.com/6268931/1441461

企业中Samba简单应用