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 https://download.samba.org/pub/samba/stable/samba-4.6.6.tar.gz
安装依赖:
    [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:7890
Retype new SMB password:7890
Added user smb1.
[root@Clone1 /]# smbpasswd -a smb2
New SMB password:7890
Retype new SMB password:7890
Added user smb2.

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

Linux端测试:
这里写图片描述
这里写图片描述
这里写图片描述

Windows端测试:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/kairui123/article/details/76895715