抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Samba 是在 Linux 和 Unix 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。Samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 Windows。该文讲解如何在麒麟服务器操作系统上安装 Samba 文件共享服务。

什么是 SMB

SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB 协议是 C/S 型协议,客户机通过该协议可访问服务器上的共享文件系统、打印机及其它资源。

监听端口

TCP 端口相对应的服务是 smbd 服务,其作用是提供对服务器中文件、打印资源的共享访问;UDP 端口相对应的服务是 nmbd 服务,其作用是提供基于 NetBIOS 主机名称的解析:

TCPUDP
139137
445138

Samba 的安装

1
yum -y install samba

注意:麒麟操作系统官方源中包含 Samba 的安装文件,直接使用上面命令安装即可。

默认配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[global]
workgroup = SAMBA
security = user

passdb backend = tdbsam

printing = cups
printcap name = cups
load printers = yes
cups options = raw

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

注意:/etc/samba/smb.conf 是服务端的配置文件,刚安装的就自带/etc/samba/smb.conf 文件,直接启动就可使用。

服务启动

1
2
systemctl start smb.services
systemctl enable smb.services

注意:上面的是启动命令,下面的是设置开机自动启动。

创建用户

1
smbpasswd -a USERNAME

注意:用户可以直接用 Linux 用户,但密码也需要设置,使用上面命令可为指定用户设置 Samba 的密码。

Samba 的配置文件

主配置文件/etc/samba/smb.conf

三大组成作用
global全局配置,此处的设置项对整个 Samba 服务器都有效
homes宿主目录共享设置,此处用来设置 Linux 用户的默认共享,对应用户宿主目录。用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录
printers打印机的共享设置

常用配置文件参数

主配置文件中常用参数:

参数作用
workgroup表示设置工作组的名称
security表示设置安全级别,其值可设置 user/server/domain
passdb backend表示设置共享帐户文件类型,其值可设置 tdbsam/ldapsam/smbpasswd
comment表示设置对应共享目录注释,说明信息,即文件共享名
browseable表示设置共享是否可见
writable表示设置目录是否可写
path表示共享目录路径
guest ok表示设置是否所有人可访问共享目录
public表示设置是否允许匿名用户访问
write list表示设置允许写的用户和组,组用符号@来表示,如 write list = @root
valid users设置可访问的用户和组,如 valid users = root,@root
hosts deny设置拒绝哪台主机访问,如 hosts deny = 192.168.1.1
hosts allow设置允许哪台主机访问,如 hosts allow = 192.168.1.1
printable表示设置是否为打印机

Samba 的安全级别

Samba 服务器的安全级别有三个,分别是 user/server/domain:

安全级别作用
user基于本地验证
server由另一台指定服务器对用户身份进行认证
domain域控进行身份验证

搭建匿名用户共享

以前的 Samba 版本支持的安全级别有四个,分别是 share/user/server/domain。share 用来设置匿名访问的,但现在的版本已经不支持 share ,但还是可以实现匿名访问的只是配置方式变了。首先我们创建共享目录:

1
2
mkdir /opt/dusays
chmod 777 /opt/dusays/

将上面目录加入到 Samba 配置文件中:

1
2
3
4
5
6
7
[dusays]
comment = dusays
path = /opt/dusays
browseable = yes
guest ok = yes
writable = yes
public = yes

测试配置文件是否有误:

1
testparm

重启服务:

1
systemctl restart smb.services

Windows 下访问共享文件

在 Windows 资源管理器地址上输入\\IP 即可登陆 Samba 服务,如我的 Samba 服务器 IP 地址是 192.168.1.1,则输入\\192.168.1.1

输入的刚才新增的 Samba 用户及密码就行,如果不想每次输入,可以勾选记住密码。

Linux 下共享文件

首先客户端需要安装支持文件共享服务的软件包 cifs-utils

1
yum -y install cifs-utils

然后使用以下命令即可实现挂载:

1
mount -t cifs -o username=USERNAME,password=PASSWORD //192.168.1.1/dusays /mnt/

评论