Samba服务------SMB协议

在Windows下,我们最常见的就是网上邻居可以看到同意互联网上连接的所有用户,但在服务器端,Linux与Windows Server相比的稳定性、安全性、执行效率以及性价比都是较高的额,所以Windows Server下跑的服务会切换到Linux服务上,但是对于一些桌面用户来说,用得较多的就是文件共享协议。而Linux中我们可以使用FTP NFS这些类型文件共享协议,但是对于Windows上较简单的直接打开的服务在Linux中NFS协议来说,是不能在Windows上使用的。这种直接将文件系统共享出来的协议为SMB。

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba的主要功能:

  1. 提供Windows操作系统风格的文件和打印机共享。
  2. 提供SMB客户功能,利用Samba提供的smbclinet程序可以从UNIX下类似于FTP的方式访问Windows的资源。
  3. 备份PC上的资源,利用一个叫smbtar的shell脚本,可以使用tar格式备份和恢复一台远程Windows上的共享文件。
  4. 提供一个命令行工具,在其上的以限制的支持Windows操作系统的某些管理功能。

SAMBA

安装samba

[root@localhost ~]# yum install samba -y

Samba拥有两个主服务(相关服务)

          smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口。

          nmbd    提供Netbios(解析协议慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析。

一般作为文件共享使用samba,则只需要smbd服务。

使用的端口:

                   Port 137        Used for NetBIOS network browsing

                   Port 138        Used for NetBIOS name service

                   Port 139        Used for file and printer sharing and other operations

                   Port 445        Used by Windows 2000/XP when NetBIOS over TCP/IP is disabled

SAMBA配置文件

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

配置文件分为三个部分:

[global] 定义全局性配置(配置samba服务的相关参数)

[homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)

[printers] 定义打印机共享配置

独立环境下(不和任何域环境有关系)的samba常用的global配置如下:

[global]
    workgroup = MYGROUP   #定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)
    server string = Samba Server Version %v   #设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内                                                                                        容,而且还可以使用%v = Samba服务的版本号。
    log file = /var/log/samba/log.%m        #定义记录文件的位置LogFileName
    max log size = 50        #定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
    security = user   #定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:
                              * share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
                              * user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
                              * server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。                                     如果递交失败,就退到user安全级。
                              * domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
                           后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。
    load printers = yes    #允许共享打印机
    printcap name = /etc/printcap   #打印机配置文件路径
[homes]   
在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。
    comment = Home Directories
    browseable = no
    writable = yes
[printers]

设置全部打印机共享
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
    write list = +staff   @用来指定可以在该共享下写入文件的用户      指定用户不用加@或+   指定组需要加        
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。
 

 

#重启服务

[root@mail samba]# systemctl restart smb

[root@mail samba]# systemctl restart nmb

在window资源设备器上去访问:\\192.168.220.131  提示要账号和密码:

#添加samba用户(先useradd添加用户)

[root@localhost samba]# smbpasswd -a xixi

                               New SMB password:

                               Retype new SMB password:

                               Added user xixi.

#查看samba用户用

[root@localhost samba]#pdbedit -L

 

Linux客户端访问

1.安装软件包,samba-client

#列出服务器资源

smbclient -L //192.168.171.143 -U xix

通过客户端进入samba

#挂载使用资源

mount //192.168.220.131/public /public -o username=xixi,password=xixi

#自动挂载  vim /etc/fstab

//192.168.220.131/public        /pub        cifs        defaults,username=xixi,password=redhat      0  0                                                                                                                                           (通用互联网文件系统)            格式类型