【嵌入式开发神器samba】Linux搭建samba服务器实现跨系统文件共享(详细)

前言

在嵌入式系统开发过程中,经常在window下编写代码,在Linux交叉编译代码,一旦错了,又要在window下改,很麻烦,本文介绍了samba服务器来解决这一烦恼。

一、samba服务器简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

​ 我们可以使用samba来实现Linux与window系统间文件共享,相当于在一个系统中挂载另一个系统的文件。

二、为什么使用samba

​ 在嵌入式系统开发应用平台中,tftp、nfs和samba服务器是最常用的文件传输工具,tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具,samba则是Linux和Windows之间的文件传输工具。

为什么要使用Samba服务器?

  • 在使用经典的FTP服务器时,你如果要修改服务器上的文件,你必须先下载下来,然后在本地机上进行修改后,然后上传到服务器。为了解决这个痛点(让档案在两部主机之间直接修改),在unix like系统中采用的是NFS协议,只要在客户端将 Server 所提供分享的目录挂载进来, 那么在客户端的机器上面就可以直接取用 Server 上的档案资料,在嵌入式开发中经常使用这个协议进行调试。在windows系统中,使用的『网上邻居』所使用的文件系统则称为 Common Internet File System, CIFS。但是怎么让unix like和window进行文件共享呢?
  • 我的源代码是放在linux下的,编译也需要在linux下完成,但是呢,我的代码编译器,如sourceinsight是在windows下的(linux貌似没有sourceinsight相应的版本),所以我需要在windows上能够修改linux下的源代码,然后在linux进行编译。

在引入samba后可以解决这两个问题。

三、samba相关配置文件

  • /etc/samba/smb.conf
    • 这个就是SAMBA 最主要的设定档了! 这个设定档主要的设定分为两部份,分别是[global] 这个设定主机功能的项目,以及接下来的每个分享出去的目录的属性设定。
  • /etc/samba/lmhosts
    • 这个档案的主要目的在对应NetBIOS name 与该主机名称的 IP ,通常这个档案通常可以不用设定。
  • /etc/samba/smbpasswd
  • 这个档案预设并不存在。它是SAMBA 预设的使用者密码对应表。 这个档案因为包含了使用者的密码,所以,当然权限方面要较为注意啦!这个档案的拥有者需要是root ,且权限设定为 600 才行

四、samba安装步骤

1、查询samba

sudo apt-cache search samba

结果:

samba - SMB/CIFS file, print, and login server for Unix
samba-common - common files used by both the Samba server and client
samba-common-bin - Samba common files used by both the server and the client
samba-dev - tools for extending Samba
samba-dsdb-modules - Samba Directory Services Database
samba-libs - Samba core libraries
samba-vfs-modules - Samba Virtual FileSystem plugins
smbclient - command-line SMB/CIFS clients for Unix

2、安装samba

sudo apt-get install samba samba-common

3、创建共享文件夹

mkdir ~/samba_share
sudo chmod 777 ~/samba_share/ 

4、添加用户和密码

指令:sudo smbpasswd -a [用户名]

用户名需要与linux当前用户名一致,不然会失败。

输入密码,密码会输入俩次。

sudo smbpasswd -a book

5、修改配置文件

sudo vi /etc/samba/smb.conf

在配置文件的最后添加如下:
在这里插入图片描述

[share]
comment = share folder
browseable = yes
path = /home/book/samba_share
create mask = 0700
directory mask = 0700
valid users = book
force user = book
force group = book
public = yes
available = yes
writable = yes

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aqjq7qMX-1681831932504)(image/Ubuntu搭建samba服务器实现文件共享/1681830660810.png)]

6、重启samba

sudo service smbd restart

7、获取ip地址

ifconfig

8、在window下操作

按下win图标+R弹出以下界面, 输入\\+ubuntu的ip地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxEQrtsP-1681831932506)(image/Ubuntu搭建samba服务器实现文件共享/1681830936784.png)]

出现以下界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdGT2wEu-1681831932507)(image/Ubuntu搭建samba服务器实现文件共享/1681831010551.png)]

双击,输入账户和密码登录即可。建议保存密码。至此就完成了共享文件的操作。
为了方便使用,右击共享文件夹,可以选择映射网络驱动器或者创建快捷方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SHHqowv9-1681831932508)(image/Ubuntu搭建samba服务器实现文件共享/1681831181949.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMBccuZK-1681831932509)(image/Ubuntu搭建samba服务器实现文件共享/1681831135639.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5MEReGoW-1681831932511)(image/Ubuntu搭建samba服务器实现文件共享/1681831219737.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdXitGU8-1681831932512)(image/Ubuntu搭建samba服务器实现文件共享/1681831240002.png)]

这样就可以当作磁盘来使用了。

第一次使用时,默认在/etc/samba/smb.conf会生成share_directory。分享这个用户的文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lkcDt2VP-1681831932513)(image/Ubuntu搭建samba服务器实现文件共享/1681831503682.png)]

参考资料

(9条消息) 【详细步骤】Ubuntu安装Samba服务及配置共享文件夹_ubuntu samba_老子姓李!的博客-CSDN博客

百度百科

猜你喜欢

转载自blog.csdn.net/m0_61737429/article/details/130233723