CentOS 使用samba服务实现文件共享访问

2016年12月2日17:11:10CentOS 使用samba服务实现文件共享访问已关闭评论 659

前言:文件服务器提供的服务在大多数公司或企业都会被用到,因为在任何的公司或企业都涉及不同职位获取不同资源文件的情况,这就需要根据不同职位配置相关的不同权限,以保证相关资源文件的安全性和保密性。

一、Samba介绍:

Server Message Block的缩写是SMB,即服务器消息块,SMB主要是作为Microsoft的网络通讯协议。Samba将SMB通信协议应用到了Linux系统上,使得Samba成为一款能让Linux系统应用Microsoft网络通讯协议的软件。Samba最大的功能可用于Linux与windows系统直接的文件共享和打印共享,Samba既可用于windows与Linux之间的文件共享,也可用于Linux与Linux之间的资源共享,由于NFS的出现,因而 Samba更多用在Linux与windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,故一台Samba服务器既可当文件共享服务器,也可充Samba的客户端。Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

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

A、WINS和DNS服务;

B、网络浏览服务;

C、Linux和Windows域之间的认证和授权;

D、UNICODE字符集和域名映射;

E、满足CIFS协议的UNIX共享等。
二、安装前准备

1、CentOS版本(6或7都可以),主机名:mtx8-samba;

2、IP地址:192.168.0.5;

3、虚拟机:Hyper-V;

4、samba软件:samba-4.2.3-11.el7_2.x86_64;

5、工作组:itbiji。

6、使用Samba服务器需要防火墙开放以下端口

UDP 137

UDP 138

TCP 139

TCP 445

[root@mtx8-samba ~]#vi /etc/sysconfig/iptables           #配置防火墙端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
/etc/rc.d/init.d/iptables restart                 #重启防火墙,使规则生效
systemctl restart iptables.service     #最后重启防火墙使配置生效(CentOS7以上)
systemctl enable iptables.service     #设置防火墙开机启动
7、关闭SELinux
vi /etc/selinux/config
#SELINUX=enforcing     #注释掉
#SELINUXTYPE=targeted  #注释掉
SELINUX=disabled  #增加
:wq  保存,关闭。
shutdown -r now重启系统。
三、安装软件:
1、检查Samba服务包是否已安装
[root@samba ~]# rpm -qa | grep samba
如果显示有如下一些信息,则说明安装没有问题:
samba-common-tools-4.2.3-11.el7_2.x86_64
samba-common-libs-4.2.3-11.el7_2.x86_64
samba-libs-4.2.3-11.el7_2.x86_64
samba-common-4.2.3-11.el7_2.noarch
samba-client-libs-4.2.3-11.el7_2.x86_64
samba-4.2.3-11.el7_2.x86_64
#这是我现在的版本,如有新也是一样
说明samba已经安装,如果没有安装,运行下面命令安装
[root@samba ~]# yum -y install samba
2、配置samba启动
chkconfig smb on      #设置 Samba开机自动启动>
systemctl enable smb.service        #设置 Samba开机自动启动(CentOS7版)
service smb start         #启动Samba服务
systemctl start smb.service    #启动(CentOS7版)
chkconfig nmb on          #设置Samba别名服务自动启动
systemctl enable nmb.service    #设置 Samba开机自动启动(CentOS7版)
service  nmb start      #启动Samba别名服务
systemctl start nmb.service    #启动(CentOS7版)
/etc/init.d/smb restart  #重启
systemctl restart smb.service    #重启(CentOS7版)
/etc/init.d/smb stop    #停止
systemctl stop smb.service        #停止(CentOS7版)
/etc/init.d/nmb restart    #重启
systemctl restart nmb.service    #重启(CentOS7版)
/etc/init.d/nmb stop    #停止
systemctl stop nmb.service    #停止(CentOS7版)
备份:cp /etc/samba/smb.conf  /etc/samba/smb.confbak
恢复:cp /etc/samba/smb.confbak  /etc/samba/smb.conf
3、设置开机自启动,并查看是否设置成功:
检查是否成功:
[root@samba ~]# systemctl list-units --type=service
结果显示有smb.service与nmb.service服务,则表示设置成功
[root@samba ~]# systemctl status smb
查看运行是否正常
四、服务配置:
1、共享目录下的不同目录进行分组。

需求:1.在系统分区时单独分一个samba的区,在该区下有以下几个文件夹:home、itbiji和Share,并建立相应帐号itbiji、share加入home组。
2.各对应的文件夹由自己管理,share文件夹为公共文件夹,其中home与itbiji可管理各自文件夹。

3.home账号管理:home、share;itbiji账号管理:itbiji、share;share账号管理:share文件夹,home、itbiji帐号可读写,但不能删除。
2、新建用户,并设置SMB账户密码:
添加用户:
[root@samba~]#useradd -s /sbin/nologin home
[root@samba~]#useradd -g home -s /sbin/nologin itbiji
[root@samba~]#useradd -g share -s /sbin/nologin share
设置密码:
[root@samba~]#smbpasswd -a home
New SMB password:
Retypenew SMB password:
Added user home.
[root@samba~]#smbpasswd -a itbiji
New SMB password:
Retypenew SMB password:
Added user itbiji.
[root@samba~]#smbpasswd -a share
New SMB password:
Retypenew SMB password:
Added user share.
为了方便记忆,在配置的时候,统一设置为:123456。
3、新建目录:
[root@samba /]# mkdir home itbiji share
[root@samba /]# cd share
[root@share /]# mkdir home itbiji Tools
更改目录权限属性:<
[root@mtx8-samba /]# chown home.home home
[root@mtx8-samba /]# chown home.itbiji itbiji
[root@mtx8-samba /]# chown share.share share
[root@mtx8-samba /]# cd share
[root@mtx8-share /]# chown home.home home
[root@mtx8-samba /]# chown home.itbiji itbiji
[root@mtx8-samba /]# chown share.share Tools
[root@mtx8-samba /]# chmod 0775 home itbiji
4、修改主配置文件如下:
[global]
workgroup = ITBIJI
server string = Samba Server Version %v
netbios name = MYSERVER
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[home]
comment = Home Directories
path = /var/spool/samba/home
guest ok = no
admin users = home
valid users = @home
browseable = yes
writable = yes
create mask = 0750
directory mask = 0750
;[printers]<
; comment = All Printers
; path = /var/spool/samba
; browseable = yes
; guest ok = yes
; writable = yes
; printable = yes
[share]
comment = home share
path = /var/spool/samba/share
browseable = yes
guest ok = yes
writable = yes
valid users = share,@home,itbiji
create mask = 0755
directory mask =0755
[itbiji]
comment = my itbiji
path = /var/spool/samba/itbiji
browseable = yes
guest ok = no
writable = yes
admin users = itbiji
valid users = @itbiji
create mask = 0750
directory mask = 0750
[root@mtx8-samba /]# testparm
显示结果:
[global]
workgroup = ITBIJI            #服务器组名
netbios name = MYSERVER        #服务器名称
server string = Samba Server Version %v    #服务器介绍
security = USER                #访问类型,share 模式为访客,user 模式为用户
log file = /var/log/samba/log.%m        #系统日记文件
max log size = 50                    #日记大小
idmap config * : backend = tdb
cups options = raw
[home]
comment = Home Directories            #共享文件夹介绍
path = /var/spool/samba/home            #共享文件目录
valid users = @home                        #可访问用户或组
admin users = home                    #管理员帐号
read only = No
create mask = 0750                    #访问权限0750 -> 管理员可读写删、用户可读写、其他无权
directory mask = 0750
writable=yes                            #是否可读写
browseable = yes                        #是否可浏览
guest ok = Yes                            #guest是否可以访问
[share]
comment = home share
path = /var/spool/samba/share
valid users = share,@home,itbiji
read only = No
create mask = 0755
directory mask = 0755
guest ok = Yes
writable=yes
browseable = yes
[itbiji]
comment = my itbiji
path = /var/spool/samba/itbiji
valid users = @itbiji
admin users = itbiji
read only = No
create mask = 0750
directory mask = 0750
writable=yes
guest ok = Yes
browseable = yes
5、设置好后重新启动samba服务:
/etc/init.d/smb restart  #重启
systemctl restart smb.service    #重启(CentOS7版)
/etc/init.d/nmb restart    #重启
systemctl restart nmb.service    #重启(CentOS7版)
6、在window系统下测试:
输入服务IP地址或服务器名称,打开共享要求登录帐号密码
CentOS 使用samba服务实现文件共享访问
输入帐号密码登录,检查权限是否正确
CentOS 使用samba服务实现文件共享访问
配置完毕,欢迎拍砖!

ITBIJI