linux的samba是什么

在linux中,samba是一个基于SMB协议的开源软件,是一个能让Linux系统应用Microsoft网络通讯协议的软件。samba软件既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。

linux的samba是什么插图

本教程操作环境:linux5.9.8系统、Dell G3电脑。

一、Samba 概述

1. samba 简介

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。

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

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

samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。

Samba的服务组成

1)SMB是samba 的核心启动服务,主要负责建立Linux samba服务器与samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口。

2)NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

安装samba服务

1

yum -y install samba

查看安装状况

1

rpm -qa | grep samba

2. samba 监听端口

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

3. samba 进程

进程 对应
nmbd 对应 netbios
smbd 对应 cifs 协议
winbindd + ldap 对应 Windows AD 活动目录

4. samba 用户

帐号 密码
都是系统用户 /etc/passwd Samba 服务自有密码文件通过 smbpasswd -a USERNAME 命令设置

1

2

3

4

5

6

7

8

9

10

11

12

13

//smbpasswd 命令:

    -a Sys_User     //添加系统用户为 samba 用户并为其设置密码

    -d              //禁用用户帐号

    -e              //启用用户帐号

    -x              //删除用户帐号

 

 

[root@localhost ~]# yum -y install samba-*

[root@localhost ~]# useradd tom

[root@localhost ~]# smbpasswd -a tom

New SMB password:

Retype new SMB password:

Added user tom.

5. samba 安全级别

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

安全级别 作用
user 基于本地的验证
server 由另一台指定的服务器对用户身份进行认证
domain 由域控进行身份验证
  • 以前的 samba 版本支持的安全级别有四个,分别是 share,user,server,domain
  • share 是用来设置匿名访问的,但现在的版本已经不支持 share 了,但是还是可以实现匿名访问的只是配置方式变了

6. samba 配置文件

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

7. 常用配置文件参数

参数 作用
workgroup 表示设置工作组名称
server string 表示描述 samba 服务器
security 表示设置安全级别,其值可为 share、user、server、domain
passdb backend 表示设置共享帐户文件的类型,其值可为 tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本 samba 密码文件)
comment 表示设置对应共享目录的注释,说明信息,即文件共享名
browseable 表示设置共享是否可见
writable 表示设置目录是否可写
path 表示共享目录的路径
guest ok 表示设置是否所有人均可访问共享目录
public 表示设置是否允许匿名用户访问
write list 表示设置允许写的用户和组,组要用 @ 表示,例如 write list = root,@root
valid users 设置可以访问的用户和组,例如 valid users = root,@root
hosts deny 设置拒绝哪台主机访问,例如 hosts deny = 192.168.10.100
hosts allow 设置允许哪台主机访问,例如 hosts allow = 192.168.10.200
printable 表示设置是否为打印机

1

2

3

4

5

6

7

8

9

10

#测试配置文件是否有语法错误,以及显示最终生效的配置。使用 testparm 命令

[root@localhost ~]# testparm

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Processing section "[homes]"

Processing section "[printers]"

Processing section "[print$]"

Loaded services file OK.

Server role: ROLE_STANDALONE

......

二、搭建匿名用户共享服务器(Linux - Linux)

1. 环境准备

IP 主机 系统
192.168.10.20 server CentOS7
192.168.10.30 client CentOS7

1

2

3

4

5

6

7

8

9

10

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

yum -y install ntp && ntpdate ntp.aliyun.com

//server

hostnamectl set-hostname server

su

//client

hostnamectl set-hostname client

su

2. 服务端

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

33

yum -y install samba-* &> /dev/null

systemctl start smb && systemctl enable smb

#添加全局配置

vim /etc/samba/smb.conf

......

[global]

        workgroup = SAMBA

        security = user

        map to guest = Bad User

......

#创建共享文件夹

mkdir -p /opt/yc

chmod 777 /opt/yc/

ll /opt/

#配置共享

cat >> /etc/samba/smb.conf << EOF

[yc]

comment = yc

path = /opt/yc

browseable = yes

guest ok = yes

writable = yes

public = yes

EOF

#测试配置文件是否有误

testparm

#重启服务

systemctl restart smb

3. 客户端

1

2

3

4

5

6

7

8

9

10

11

12

yum -y install samba-* &> /dev/null

systemctl start smb && systemctl enable smb

#客户端验证

smbclient -L 192.168.10.20 -U 'Bad User'    #123456

mkdir -p /opt/smb

mount -t cifs //192.168.10.20/yc /opt/smb/ -o username='Bad User'

df -h

#在客户端上创建共享目录,文件

cd /opt/smb/ && touch test && mkdir yanchuang

ls

4. 服务端上验证

1

2

3

[root@server ~]#cd /opt/yc

[root@server /opt/yc]#ls

test  yanchuang

三、Windows 访问共享文件

同网段 windows 虚拟机访问

linux的samba是什么插图1
linux的samba是什么插图2
linux的samba是什么插图3

不同网段 windows 虚拟机访问

  • 需要认证

linux的samba是什么插图4

版权声明:本文采用知识共享 署名4.0国际许可协议BY-NC-SA 进行授权
文章作者:jiuhucn
文章链接:https://www.jiuhucn.com/2022/04/14/2236.html
免责声明:本站为资源分享站,所有资源信息均来自网络,您必须在下载后的24个小时之内从您的电脑中彻底删除上述内容;版权争议与本站无关,所有资源仅供学习参考研究目的,如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站为非盈利性站点,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>