您的位置:首页 > 运维架构 > Linux

企业中Samba简单应用

2014-07-22 17:17 323 查看
一、简介
  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地址”时,就可以切换用户了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux samba file