首页 > 代码库 > Linux之samba服务器的搭建及详解

Linux之samba服务器的搭建及详解

SAMBA简介

SAMBA是什么
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。


SAMBA的功能

  1. 分享文件和打印机功能

  2. 提供认证功能,以不同的身份登录samba服务器访问不同的文件

  3. Windows网络上的主机名称解析

  4. 进行装置的分享


SAMBA的结构
技术分享

  1. samba server端由smbd,Winbid进程nss_ldap进程组成,并且使用nmbd进程提供NetBIOS通信协议,进行域名解析。smbd是smb的服务进程。

  2. samba client由CIFS Server,Active Director和S而vices For UNIX组成。

  3. smaba监听在137/udp,138/udp,139/tcp,445/tcp端口上。


NetBIOS简介
NetBIOS为网络基本输入输出系统(英语:Network Basic Input/Output System)的缩写,它提供了OSI模型中的会话层服务,让在不同电脑上运行的不同程序,可以在局域网中,互相连接,以及分享数据。严格来说,NetBIOS不是一种网络协议,而是应用程序接口(API)。较古老的操作系统,使用IEEE 802.2与IPX/SPX协议,可以使用NetBIOS Frames协议或NetBIOS over IPX/SPX协议来运作。现代操作系统,多数都使用TCP/IP协议,则可通过NetBIOS over TCP/IP协议来相互通信。


SAMBA与NetBIOS的关系
SAMBA这个文件系统架构是在NetBIOS这个通信协议上开发出来,由于早期NetBIOS是无法跨路由的,只能在局域网内进行传输,后来研发出 NetBIOS over TCP/IP技术,试SAMBA应用于以太网。

SAMBA Server安装及配置

SAMBA Server的安装

下载:
    [root@Clone1 ~]# wget 
安装依赖:
    [root@Clone1 ~]#  yum install python-devel gnutls-devel gnutls libacl-devel openldap-devel安装:
    [root@Clone1 ~]# tar -xzf samba-4.6.6.tar.gz 
    [root@Clone1 ~]# cd samba-4.6.6
    [root@Clone1 samba-4.6.6]# make && make install


SAMBA配置文件详解

[global]
# ------------- Network Related Options -----------------#
    workgroup = MYGROUP          //主机群名称,主机群里的主机都相同
   server string = Samba Server Version %v        
    netbios name = MYSERVER      //netbios名称,每个主机的都不相同     
    interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24          
    hosts allow = 127. 192.168.12. 192.168.13.     //主机白名单
# ---------------- Logging Options ---------------------
    log file = /var/log/samba/log.%m      //登录日志PATH
    max log size = 50       //日志文件大小
# ------------- Standalone Server Options -----------------
    security = user|shar|domain     //设置分享权限,shar:资料不需要密码,大家可以分享文件。user:使用samba本身的密码资料
    passdb backend = tdbsam      //资料库格式。默认为tdsam[share_name]
    comment = All Printers    //说明
    path = /var/spool/samba    //分享路径
    browseable = no        //是否所有使用者都能看到这个项目
    guest ok = no               
    writable = no   //是否进行写操作
    printable = yes     //是否显示表格
    write list=user1,user2 或+group //可写用户表单
    public=yes           //不属于该用户的,是否能够显示出来的
    read only=yes        //只读
    create mode    = 0664             //建立文件权限
    directory mode = 0775             //建立目录的权限


配置文件的内置变量

%m:Client端NetBIOS主机名
%M:Client端Internet主机名,即HOSTNAME。
%L:SAMBA主机的NetBIOS主机名
%H:使用者的家目录
%U:目前登录的使用者的使用者名称
%g:登入的使用者的群组名称
%h:SAMBA主机名
%I:Client IP
%T:日期

测试

无用户认证测试


服务器端配置:
配置文件:
技术分享


检测配置文件
技术分享


启动服务:
技术分享


Linux客户端测试:


检查服务器上的共享:
技术分享
技术分享


Windows客户端测试:
访问:http://jingyan.baidu.com/article/b87fe19e63458052183568e3.html


用户认证测试

服务器端配置:
samba server配置文件
技术分享


设置账号和密码:

[root@Clone1 /]# useradd -G users smb1
[root@Clone1 /]# useradd -G users smb2
[root@Clone1 /]# passwd smb1
更改用户 smb1 的密码 。
新的 密码:1234
重新输入新的 密码:1234
passwd: 所有的身份验证令牌已经成功更新。
[root@Clone1 /]# passwd smb2
更改用户 smb2 的密码 。
新的 密码:1234
重新输入新的 密码:1234
passwd: 所有的身份验证令牌已经成功更新。
[root@Clone1 /]# smbpasswd -a smb1 New SMB password:7890Retype new SMB password:7890Added user smb1.
[root@Clone1 /]# smbpasswd -a smb2New SMB password:7890Retype new SMB password:7890Added user smb2.12345678910111213141516171819201234567891011121314151617181920


:smbpasswd命令给系统用户设置smb的密码,-a参数添加用户


linux端测试:
技术分享
技术分享
技术分享


Windows端测试:
技术分享
技术分享
技术分享
技术分享
技术分享


Linux之samba服务器的搭建及详解