【Ubuntu】Ubuntu22.04搭建Samba服务

Samba是一个开源软件,用于实现Linux和Windows系统间的文件共享。它基于SMB协议,由Tridgwell开发。Samba套件包括samba、samba-common和samba-client,分别提供服务、配置和客户端工具。配置关键文件如smb.conf用于设定共享参数。文章还介绍了Samba的安装、配置和测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

00. 目录

01. Samba概述

1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以“SMB是没有意义的字符”为由而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

在这里插入图片描述

02. Samba套件

samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;

samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等;

samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。

03. Samba配置文件

在较早期的版本中, SAMBA 的设定档都直接放置在 /etc 底下,后来的版本则将设定档通通放置到/etc/samba 底下去了 ( 有的 distribution 放在 /etc/smb 有的则是 /etc/samba.d,请使用 locate 搜寻! )。在 /etc/samba 底下的几个重要的设定档有:

/etc/samba/smb.conf:这个就是SAMBA 最主要的设定档了!在较为简单的设定当中,这也是唯一的一个设定档!此外,这个档案本身就含有相当丰富的说明,所以,在设定之前,请使用vi 好好的详细的观看一下这个档案吧!这个设定档主要的设定分为两部份,分别是[global] 这个设定主机功能的项目,以及接下来的每个分享出去的目录的属性设定。

/etc/samba/lmhosts:这个档案的主要目的在对应NetBIOS name 与该主机名称的 IP ,事实上,他有点像是 /etc/hosts 的功能!只不过这个lmhosts 对应的主机名称是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!由于目前SAMBA 的功能越来越强大,所以通常只要您一启动 SAMBA 时,他就能自己捉到 LAN里面的相关计算机的 NetBIOS name 对应 IP 的信息,因此,这个档案通常可以不用设定了。

/etc/samba/smbpasswd:这个档案预设并不存在。它是SAMBA 预设的使用者密码对应表。当设定的 SAMBA 服务器是较为严密的,需要使用者输入账号与密码后才能登入的状态时,使用者的密码预设就是放置在这里( 当然,您可以自行在 smb.conf 里面设定密码放置的地方及密码文件名,不过,我们这里都以预设的状态来说明) 。比较需要注意的是,这个档案因为包含了使用者的密码,所以,当然权限方面要较为注意啦!这个档案的拥有者需要是root ,且权限设定为 600 才行。

04. Samba安装

4.1 更新软件源

deng@local:~$ sudo apt update

4.2 安装Samba服务

deng@local:~$ sudo apt install samba 

05. Samba配置

5.1 打开samba配置文件

deng@local:~$ sudo gedit /etc/samba/smb.conf 

5.2 在/etc/samba/smb.conf 添加一下内容

[Home]
	comment = Home Share
	path = /home/deng
	public = yes
	browseable = yes
	read only = no
	valid users = deng
	create mask = 0777
	directory mask = 0777 
	force user = deng
	force group = deng
	available = yes

5.3 重启samba服务

deng@local:~$ sudo systemctl restart smbd

5.4 设置Samba用户名和密码

deng@local:~$ sudo smbpasswd -a deng
New SMB password:
Retype new SMB password:
Added user deng.
deng@local:~$ 

06. Samba测试

6.1 在Windows系统中按下Win + R
在这里插入图片描述

6.2 输入Samba服务的IP,然后点击确定
在这里插入图片描述

6.3 输入samba用户名和密码
在这里插入图片描述

07. 技术交流

物联网、嵌入式、C++、C方向等等兴趣爱好者可以添加WX一起交流。 点击主页私信,添加博主微信。

08. 附录

### 配置和使用 Samba on Ubuntu Server 22.04.5 LTS #### 安装 Samba 为了安装 Samba,在终端执行命令来更新包列表并安装必要的软件: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install samba smbclient cifs-utils ``` 这会确保所有依赖项都得到正确处理[^1]。 #### 编辑配置文件 主要的配置位于 `/etc/samba/smb.conf` 文件内。对于启用 SMB1 协议的支持,可以在 `[global]` 节点下加入如下设置以允许较旧版本客户端连接: ```ini ## 启用 SMB1 ## server min protocol = NT1 ``` 此更改使得服务器能够兼容更广泛的设备和服务需求[^2]。 #### 创建共享目录与权限设定 假设要创建名为 `shared_folder` 的公共访问区域,则需先建立该路径下的实际存储位置,并调整其读写属性: ```bash sudo mkdir -p /srv/samba/shared_folder sudo chown nobody:nogroup /srv/samba/shared_folder/ sudo chmod 777 /srv/samba/shared_folder/ ``` 接着回到 `smb.conf` 中定义新的分享资源部分: ```ini [SharedFolder] path = /srv/samba/shared_folder available = yes valid users = @users read only = no browsable = yes public = yes writable = yes create mask = 0644 directory mask = 0755 force user = nobody ``` 上述操作完成后记得重启服务使新参数生效: ```bash sudo systemctl restart smbd.service ``` #### 添加用户账户 如果希望特定用户可以安全地存取资料夹内容,那么还需要注册这些用户名至 Samba 数据库里头: ```bash sudo adduser john # 增加系统账号 (仅当不存在时) sudo smbpasswd -a john # 设置对应的密码凭证 ``` 完成以上步骤之后便可在其他计算机通过网络邻居找到这个 Linux 主机所提供的共享空间了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一笑-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值