samba服务

一、服务概述

SMB/CIFS

SMB (Server Message Block,服务消息块)

CIFS(Common Internet FIle System,通用互联网文件系统)

Samba 服务通常用来做文件服务器,它可以实现 windows 与类 Unix

实现共享打印机,共享文件等功能,samba 底层也是 CIFS 协议。

 

二、安装需要的软件包

samba                           服务端软件

samba-client                客户端软件

samba-common            提供服务端和客户端的公共组件

System-config-samba    samba 的图形界面软件包

Samba-swat                  samba的web界面管理软件包

 

三、samba 服务相关进程及端口号

/usr/sbin/smbd    为客户机提供服务器中的共享资源的访问

/usr/sbin/nmbd    提供基于 NetBIOS 协议的主机名称解析

Samba 的脚本      /etc/init.d/smb

Samba 的端口:

Nmbd:(137 138)NetBIOS 协议

smbd: 139(SMB 协议)  445(CIFS 协议)

 

四、安装服务

1、挂载光盘

mount /dev/cdrom /mnt

2、安装软件包

rpm -ivh samba-3.6.9-151.el6.x86_64.rpm

rpm -ivh samba-client-3.6.9-151.el6.x86_64.rpm

rpm -ivh samba-common-3.6.9-151.el6.x86_64.rpm

3、启动服务

service smb start

4、查看端口是否存在

netstat -anpt |grep smb

5.samba配置文件讲解

samba 服务的主配置文件/etc/samba/smb.conf 主要由两部分组成:

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

        [global]    全局设置,里面的配置信息对整个服务器都生效

            Workgroup = MYGROUP             工作组的名字

            Server string = Samba Server Version %v  对 samba 的描述信息

; netbios name = MYSERVER

;interfaces=lo eth0 192.168.12.2/24 192.168.13.2/24

; hosts allow = 127. 192.168.12. 192.168.13.

注意,关于 samba 服务的 IP 的表示方法有点特殊,只需要写出网络位,主机位省略。127.0.0.0 写成 127.

192.168.12.0 写成 192.168.12.

         

          security = user      #Samba 的安全模式

        passdb backend = tdbsam

关于 samba 的五种安全模式:

Share 允许匿名访问

User   需要用户名和密码认证,认证信息来自于 samba 服务本身

Domain 认证来自于网络中另一台计算机

Server 和 domain 一样

Ads     使用微软的 AD 来认证

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

   

[homes]

        comment = Home Directories

        browseable = no

        writable = yes

;       valid users = %S

;       valid users = MYDOMAIN\%S

 

这里有一段homes的配置片段,这段配置需要注释掉,否则在我们共享完目录后,会连用户的家目录一起显示出来。

          [test]    这是共享的名字,也就是你从windows登录到共享服务器后看到的名字。       

        comment = Public Stuff       #共享描述

        path = /gongxiang        #这时你共享的路径

        public = no             #等于yes的时候表示所有人可以看到gongxiang这个目录里面的东西。等于no的时,所有人不能看到gongxiang这个目录,需要用户名和密码才能看到。

       

    read only = no          #是否有写权限 no 代表有写权限  

    valid users = test1,test2

                                    #有效的用户,就是能通过验证的用户,但是只有写权限。@组名表示授权一个组

    write list = test1    #具有写权限的用户。

    directory mask = 0755       #共享用户上传文件的权限

    create mask = 0644        #创建子目录的权限

 

特别注意:在配置某个共享文件需要用户验证用户的时候,要是要配置写权限,配置文件和chmod 777 要同时开启,才能生效。读权限只要配置器其中一个改成读就可以了。

 

 

五、实现匿名用户访问

创建测试文件

mkdir /gongxiang

1、将samba的安全级别改为share 即:

    vim /etc/samba/smb.conf

    security = share

2、设置共享目录

[test]

comment = testfile

path = /gongxiang

public = yes

read only = no                             

3、访问测试文件

你的samba的服务器是多少,访问的IP就写多少

然后就可以再test目录下创建文件了。

 

六、实现访问验证登陆

1、将samba的安全级别改为share 即:

    vim /etc/samba/smb.conf

    security = user

2、设置共享目录权限

[test]

comment = testfile

path = /gongxiang

public = no

#read only = no 这一条配置可以去掉 

valid users = a,b     仅允许哪些用户对该目录有操作的权限,默认也只有 r 的权限。其他用户没有任何权限。 

write list = b        哪些用户可以有写权限

重启服务

    service smb restart

3、创建共享用户

为了区别linux主机中系统用户,通常将用于访问samba共享资源的用户成为共享用户。Samba服务器使用独立的共享账号数据文件,其中的账号名称必须有与它同名的系统用户相对应。共享用户的密码和系统用的密码可以不一致。

    (1)创建系统用户

        useradd -M -S /sbin/nologin a

        useradd -M -S /sbin/nologin b

    (2)创建系统用户对应的samba共享用户

        pdbedit -au a

        pdbedit -au b

           

       

        删除的用户,命令如下

        pdbedit -xu 用户名

    3查看samba系统用户

    [root@Centos2 home]# pdbedit -L

    a:505:

    b:506:

       

测试登陆

 

注意:windows中用某一用户访问过samba服务器后,登陆的用户会有验证缓存,所以切换用户访问的时候需要清除缓存。命令如下

windwos的命令行提示符中输入:

net use * /del       即可清除缓存

需要多清楚两遍

在次访问的时候需要手动输入访问地址:

\\samba服务器的IP地址

如果还有缓存的话,重启解决

 

七、实现虚拟用户访问

    共享账号映射(别名)

    它可以将一个共享用户映射成多个不同的用户,这样我们就可以通过共享用户的别名和密码就能访问授权的资源了。保证了系统安全性。

    (1)samba共享用户的映射配置文件在/etc/samba/smbusers

vim /etc/samba/smbusers

格式如下:

        共享用户名 = 别名1 别名2 别名3

例如: a = test1 test2 test3

(2)vim /etc/smb/smb.conf

在全局配置里添加一条

username map = /etc/samba/smbusers

重启服务

    service smb restart

 

注意:windows中用某一用户访问过samba服务器后,登陆的用户会有验证缓存,所以切换用户访问的时候需要清除缓存。命令如下

windwos的命令行提示符中输入:

net use * /del       即可清除缓存

需要多清楚两遍

在次访问的时候需要手动输入访问地址:

\\samba服务器的IP地址

如果还有缓存的话,重启解决

 

 

(3).访问地址限制

    在samba.conf 中的全局配置中配置

    hosts allow = 192.168.3.1 或者是 hosts deny = 192.168.3.1

    访问地址限制一般用于全局配置部分,也可以用于某个具体的共享配置段部分。限制对象可以是主机名、ip地址或者    是网络段地址(省去主机位部分),多个地址之间以逗号或是空格分隔。

 

posted @ 2018-09-01 21:24  henglinux  阅读(851)  评论(0编辑  收藏  举报