十二、samba服务器配置和管理

简介:

12.1、Samba简介

  Linux和Windows是两种无论在风格还是在技术上都完全不同的操作系统,它们是两个对立的阵形。各自都拥有自己的用户群和市场。但是,要实现这两种系统之间的资源共享,则需要使用Samba。Samba采用的是C/S工作模式,通过它可以将一台Linux系统主机配置为Samba服务器,而其他安装和使用了SMB协议的计算机可以通过Samba服务与Linux实现文件和打印机的共享。

  Samba服务的安装可以通过yum命令安装,也可以通过源代码安装,为了能够获取最新版的Samba软件,可以从其官网https://www.samba.org/上下载该软件的源代码安装包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost home] # wget https://download.samba.org/pub/samba/stable/samba-4.6.5.tar.gz 
[root@localhost home] # tar xf samba-4.6.5.tar.gz
[root@localhost home] # cd samba-4.6.5
[root@localhost samba-4.6.5] # ./configure
[root@localhost samba-4.6.5] # make && make install
[root@localhost samba-4.6.5] # cp /home/samba-4.6.5/packaging/LSB/smb.conf  /usr/local/samba/etc/        #复制配置文件
[root@localhost samba-4.6.5] # echo '/usr/local/samba/lib' >> /etc/ld.so.conf  
[root@localhost samba-4.6.5] # ldconfig                      #添加库文件到系统
[root@localhost samba-4.6.5] # grep 'netbios' /etc/services  #确保文件中有这些内容
netbios-ns      137 /tcp                          # NETBIOS Name Service
netbios-ns      137 /udp
netbios-dgm     138 /tcp                          # NETBIOS Datagram Service
netbios-dgm     138 /udp
netbios-ssn     139 /tcp                          # NETBIOS session service
netbios-ssn     139 /udp

启动和关闭Samba

  Samba服务器包括smbd和nmbd两个进程,它们分别是Samba的SMB(Service Message Block)服务的守护进程和NetBIOS服务守护进程。要使Samba服务器正常运行,必须要同时启动这两个进程,其作用分别为:

  smbd:Samba的SMB服务守护进程,使用SMB协议与客户进行连接,完成用户认证、权限管理和文件共享任务。

  nmbd:NetBIOS名字服务的守护进程,可以帮助客户端定位服务器和域,相当于Windows NT中的WINS服务器。

1
2
3
4
5
6
7
8
9
10
11
[root@localhost sbin] # /usr/local/samba/sbin/nmbd -D   #启动Samba
[root@localhost sbin] # /usr/local/samba/sbin/smbd -D
[root@localhost samba] # ps -ef | grep nmbd             #查看进程是否启动
root     35891     1  0 18:02 ?        00:00:00  /usr/local/samba/sbin/nmbd  -D
root     35899  1305  0 18:02 pts /0     00:00:00  grep  nmbd
[root@localhost samba] # ps -ef | grep smbd
root     35893     1  0 18:02 ?        00:00:00  /usr/local/samba/sbin/smbd  -D
root     35894 35893  0 18:02 ?        00:00:00  /usr/local/samba/sbin/smbd  -D
root     35895 35893  0 18:02 ?        00:00:00  /usr/local/samba/sbin/smbd  -D
root     35897 35893  0 18:02 ?        00:00:00  /usr/local/samba/sbin/smbd  -D
root     35901  1305  0 18:02 pts /0     00:00:00  grep  smbd

12.2、Samba服务器基本配置

  Samba的配置更改主要通过修改其主配置文件smb.conf来完成,该配置文件由全局设置和共享定义两部分组成。文件更改后不会立刻生效,用户需要重启Samba服务器或执行相应的命令重载配置文件使之生效

  • smb.conf配置文件

  smb.conf是Samba的主配置文件,包括全局设置和共享定义。其中全局设置定义影响整个Samba系统运行的全局选项,用于设置整个系统的规则;共享定义则是对系统中的共享资源进行定义,该部分可以由多个段组成,常见的包括:用户主目录段,共享目录段和打印段,每个段中可以再定义详细的共享选项。

全局设置选项

选项名称 说明
netbios name 设置NetBIOS名称,默认为服务器主机名
workgroup 设置Samba服务器所属的工作组名称
server string
设置samba服务器的说明信息

interfaces

bind interfaces only

如果服务器有多个IP地址,可以使用interfaces选项把IP地址列出来。如果bind interfaces only设置为yes,则表示

Samba将绑定interfaces选项所设置的IP地址

hosts allow

hosts deny

hosts allow指定允许访问该Samba服务器的客户端列表

hosts deny指定拒绝访问客户端列表

printcap
设置[printers]段中所使用的打印机配置文件
load printers
启用该选项后将自动共享printcap name所指定的配置文件中的所有打印机
printing
设置打印机的类型
guest account
指定samba中使用的guest帐号,默认nobody
wins server
指定wins服务器的ipdizhi或主机名
wins support
设置samba服务器是否作为wins服务器
wins proxy
设置是否启用WINS代理功能
dns proxy 设置是否启用DNS代理功能
username map
指定用户映射文件的位置

共享选项

  共享目录,在该段中指定了一个通过samba进行共享的目录,定义共享目录的各种设置。要通过Samba共享服务器上的目录/home/samba,共享名为share,用户对该目录只能读不能写入。

1
2
3
4
[share]                         #共享目录的共享名
    comment = For testing only   #共享目录的说明信息
    path =  /home/samba           #指定共享目录
    read  only =  yes              #该共享目录是只读

  用户主目录,使用[home]来标示,定义用户对其主目录的访问设置。

1
2
3
4
5
6
7
[home]
    comment = Home Directories       #注释信息
    browseable = no                  #不可浏览
    writable =  yes                   #可写
    valid  users  = mary fred          #有效用户列表
    create mode =0664                #权限模式
    directory mode = 0775            #目录模式

  打印机,共享打印机是Samba服务器的常见应用,使用Samba共享打印机可以有效的节约硬件资源。

1
2
3
4
5
6
7
8
9
printcap  name =  /etc/printcap    #指定系统中打印机配置文件位置
load printers =  yes              #指定自动共享/etc/printcap文件中设置打印机
printing = cups                  #指定达应急类型
[printers]
    comment = All Printers        #注释信息
    path =  /var/spool/samba       #指定打印机池
    browseable = no               #不可浏览
    public =  yes                  #指定允许guest帐号使用打印机
    printable =  yes               #允许使用该打印机打印
  • Samba用户管理

  Samba的用户是与操作系统用户联系在一起,在创建Samba用户前,必须先添加一个与之同名的操作系统用户,但是两者的口令可以不相同。Samba用户通过smbpasswd命令进行管理,其命令格式为:

1
smbpasswd [options]  [username]

常用选项:

-h:显示命令帮助信息

-a:添加用户

-d:禁用某个用户

-e:启用某个用户

-n:设置用户密码为空

-x:删除某个用户

  用户映射,为防止Samba用户通过Samba帐号来猜测操作系统用户的信息以及提供灵活的用户管理方法,所以就出现Samba用户映射,映射的账户不需要创建。实现用户映射的方法:

  1、编辑smb.conf在[global]部分添加用户映射文件

1
username map =  /etc/samba/smbusers

  2、手工创建用户映射文件/etc/samba/smbusers,该文件格式为:

1
2
3
4
#Samba用户账号 = 需要映射的账号列表
root = administrator admin
nobody = guest
share = jim jack

 3、重启samba服务器

12.3、日志设置

  Samba的日志默认存放在'<Samba 安装目录>/var/'目录下,其中smbd进程日志为log.smbd,nmbd进程日志为log.nmbd。用户也可以设置Samba所提供的日志选项。在smb.conf配置文件中可以设置日志的存放位置与格式:

1
log  file  /var/log/samba/log .%m

  其中,%m是Samba配置文件保留变量,表示客户端的NetBIOS,常见保留变量有:

变量 说明

%a

客户端架构
%d 当前服务器进程的进程号
%D
用户的WinNT域
%G
登录用户的主用户组
%H
用户的主目录
%h
Samba服务器的主机名
%I
客户端的IP地址
%j
打印任务的任务号
%L
Samba服务器的NetBIOS名称
%M
客户端的主机名称
%m
客户端的NetBIOS名称
%p 打印的文件名称
%S
当前共享的名称
%T
当前的日期和时间
%v
Samba版本号
%$name
环境变量name的变量



本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1934835,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
网络协议 安全 Linux
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
82 0
|
2月前
|
监控 安全 Linux
深入探讨Samba服务器的配置与使用
深入探讨Samba服务器的配置与使用
140 0
|
18天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
3月前
|
Ubuntu Linux Windows
window10 虚拟机 linux ubuntu 环境下samba服务器配置
本文的目的是在windows 10 系统,使用samba服务实现 windows 10共享虚拟机ubuntu系统的文件。
44 0
|
7月前
|
Unix Linux 网络安全
百度搜索:蓝易云【Centos7下Samba服务器配置。】
Samba是一个开放源代码软件套件,可以在类Unix操作系统上实现SMB/CIFS协议。SMB/CIFS是Windows操作系统使用的一种网络共享协议。
197 0
|
3月前
|
Linux Windows
Linux系统安装Samba服务器
在实际开发中,我们经常会有跨系统之间文件传递的需求,Samba便是能够在Windows和Linux之间传递文件的服务,功能也是非常强大和好用,本篇文章将介绍如何在Linux系统上安装Samba服务,以CentOS7系统为例。
64 0
|
7月前
|
Ubuntu Linux 开发工具
Ubuntu2021.4 samba服务器配置方案[开源]
Ubuntu2021.4 samba服务器配置方案[开源]
84 3
|
8月前
|
安全 Linux 网络安全
Linux/centos上如何配置管理samba服务器?
Linux/centos上如何配置管理samba服务器?
102 0
|
9月前
|
Ubuntu Linux 数据安全/隐私保护
搭建Samba服务器
搭建Samba服务器
206 0

热门文章

最新文章