samba服务简介

SMB简介

SMB(Serevr Message Block)协议是windows中使用的文件共享协议,我们在Linux系统或者其他类Unix系统中(BSD、MAC、Unix)可以通过samba服务来实现SMB功能。SMB协议又称为CIFS(Common Internet File System)协议。

smb

Samba是著名的开源软件项目,在Linux/UNIX系统中实现了SMB网络协议,因此使得跨平台的文件共享变得更加容易。在部署Windows、Linux/UNIX混合平台的企业环境时,使用Smaba可以很好地解决不同系统之间的文件互访问题。

samba主要功能

samba服务是SMB的一个开源实现,主要功能如下:

  • 通过SMB协议进行文件共享
  • 通过SMB协议进行打印共享
  • 加入一个windows2000/2003/2008域环境
  • 通过windows域环境进行认证操作

samba安装

samba的软件包组成:

1
2
3
4
5
6
7
8
9
samba-3.0.23c-2.i386.rpm
samba-client-3.0.23c-2.i386.rpm
samba-common-3.0.23c-2.i386.rpm
samba-swat-3.0.23c-2.i386.rpm
system-config-samba-1.2.39-1.el5.noarch.rpm
#查看当前系统是否已经安装了samba
rpm –qa | grep samba
#如果没有安装,我们执行以下命令,安装samba
yum install –y samba

samba拥有3个相关服务,分别是:

  • smbd
    提供文件及打印共享功能,使用139,445端口
  • nmbd
    提供NetBIOS名称解析,使用137端口(现在已经逐渐淘汰掉,使用DNS)
  • winbendd
    提供对windows 2000\2003\2008的用户及组信息的解析功能

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

访问samba服务器

客户端访问samba服务器:

  • Windows客户端直接使用以下方式连接即可:
    1
    \\192.168.0.100\skynet
  • Linux或类Unix系统图形界面使用以下方式连接:
    1
    smb://192.168.0.100/skynet
  • Linux使用CLI下可以使用smbclient命令链接:
    1
    2
    3
    4
    5
    #注:smbclient默认是不安装的,需要单独安装
    smbclient//192.168.0.100/skynet –U test

    #也可以通过mount命令挂载smb共享:
    mount -o username=test //192.168.0.100/bxy-share /mnt/test/

samba配置

samba服务
samba服务的主配置文件为

1
/etc/samba/smb.conf

samba服务可以作为独立的服务器,也可以加入windows域环境使用。

samba作为独立服务器使用时,samba使用Linux用户作为其用户,但是单独需
要创建密码。

当加入windows域环境使用时,一般使用的是windows域用户。

samba有两种安全模式:

  • User-Level 默认安全模式,使用用户名、密码进行认证。
  • Share-Level 只需要密码即可访问共享,但与部分windows客户端有兼容性问题,不推荐使用。(官方文档,但在实际的使用没有遇到此类问题)

samba服务的主配置文件为

1
2
3
4
5
6
/etc/samba/smb.conf

#配置文件分为三个部分:
[global] #定义全局性配置
[homes]         #定义用户家目录的共享配置
[printers]    #定义打印机共享配置

Global配置

samba常用的global配置如下:

配置工作组信息:

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#设置当前的工作信息
workgroup=bxy    

#服务器的简介
server string=this is bxy samba server   

#配置安全模式
Security = user(默认是user)

# 设置服务器的安全级别,可设为以下4个值中的一个:
share #可匿名访问
user #需由本服务器验证用户名及密码
server #由另一台服务器验证用户名及密码
domain #由Windows域控制器验证用户名及密码
ads #域环境

用户家目录共享

Samba服务配置文件默认配置好了用户家目录共享,每一个Linux用户的家目录

均可以使用smb协议访问:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[home]
Comment=Home Directories
Broseable=no
Writable=yes


#为要通过smb协议访问家目录的用户创建samba密码:
smbpasswd -a 123456

#启动smaba服务
Service smb start

#通过smbclient登录验证用户共享
smbclient //your IP/skynet –U bxy

创建独立共享

我们可以通过向/etc/samba/smb.conf 添加如下的配置

1
2
3
4
5
6
7
8
9
10
[skynet-share]
#共享注释信息
comment = This is a share directory.
path = /bxy-share
public = no 
valid users = test
browsable=yes
writable = yes
create mask = 0755
directory mask = 0755

创建匿名共享

如果我们需要创建一个不需要用户名密码就可以访问的开放共享,可以使用如下配置:

修改samba的安全级别为share

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

[global]
secuity=share
[bxy-share]
comment = This is a share directory. –共享注释信息
path = /bxy-share
read only=yes
guest only=yes

#注意:使用share安全级别可能会与windows客户端不兼容,如果在非常严格的生产环境中,还是需要注意,避免使用。

#其他:
#可以使用testparm命令检查samba配置文件语法是否正确
testparm

#我们可以通过smbclient查看一个指定服务器都有哪些共享:
smbclient –L 192.168.0.102
smbclient –L 192.168.0.102 –U test

练习:挂载一个windows共享的文件夹?

1
mount -o username=Administrator,password=123456 //192.168.0.200/win-share /mnt/test/

samba服务简介
https://skynetboys.github.io/2023/02/16/samba服务简介/
Author
Edison
Posted on
February 16, 2023
Licensed under