欢迎光临散文网 会员登陆 & 注册

Raspberry Pi Samba文件传输服务搭建

2021-02-23 23:56 作者:28283844972_bili  | 我要投稿

在之前的一篇文章《Raspberry Pi挂载可移动存储设备》(CV9587685)中,有谈到需要在Linux原生文件系统(例如ext家族)与Windows原生文件系统(例如NTFS)之间建立简单的传输数据需求,更宏观的表现就是在Linux主机与Windows主机之间交换数据,所以在Linux系统上用到了实现SMB协议的自由软件Samba。SMB协议是一种在局域网上共享文件和打印机的通信协议,为局域网内的不同计算机之间提供文件及打印机等资源的共享服务,客户端可以通过该协议访问服务端上的共享文件系统、打印机等其他资源。

作为天生就具有成为服务端气质的Linux系统,自然就担任起了服务主机的工作,所以本次以Raspberry pi os lite环境为例,在树莓派4b上搭建Samba文件传输服务。

首先确认当前系统环境中是否已安装samba服务,raspberry pi os full系统镜像自带,一般无需再次安装,稍加更新就行。lite版需要自行安装:

  1. 有网络环境,输入: sudo apt-get install samba samba-common-bin

  2. 无网络环境,请提前在本地准备好安装包(注意环境依赖),使用dpkg工具安装

  3. 自行编译,适合追求极致的稳定兼容性、最新版本安装、自定义安装等各类大佬

初学者可以选择1、2方案,安装过程中,会有以下可选功能设置提醒:

让你的Linux主机尽可能地利用DHCP服务特性,更加便捷地访问其他服务主机,可以按照自己的需求进行设置。如果你实在不清楚自己需不需要这项功能,请选择“是”,有总比没有好,万一以后需要用到这项功能呢?

安装完成后,smbd服务也就自动开启了,输入: service smbd status 查看服务运行状态,显示绿灯的running状态,代表samba服务安装成功!呼,距离成功还有一半的路,可以稍作调整后进入配置阶段了。

缺一不可哦

下面需要给samba服务稍作配置,配置文件是 /etc/samba/smb.conf ,修改配置文件之前最好记得备份一下原配置文件,或者在修改的过程中尽量以注释的形式保留原配置信息。

在配置文件末尾处继续添加类似于样例的配置信息

[PrivateDisk]:共享文件目录名称,如果映射成虚拟网络磁盘的话类似于卷标名,必填且唯一

comment:共享文件目录作用描述,可选

path:共享文件目录(绝对路径或全局变量)

valid users:对共享目录操作合法的用户或用户组

read only:字面意思,将共享目录设置为只读

create mask:创建文件权限码

directory mask:创建目录权限码

guest ok:是否允许游客访问(无需登录已注册的账户即可访问共享目录)

browseable:是否允许用户浏览共享目录

配置完成后,需要重启samba服务,输入: sudo service smbd restartsudo samba restart ,让新配置生效。

目前还差最后一步,就是添加samba合法用户,注意待添加的用户必须是当前系统中已存在的用户,输入: sudo smbpasswd -a <username> ,例如:

将系统已有的pi用户添加到samba的合法用户中

其中,samba账户的密码不必与待添加用户现有的密码相同,建议单独设置samba账户的密码。

至此,你的samba服务设置基本大功告成,在你的win主机中键入ctrl+r调用运行程序,或打开网络(网上邻居),输入samba服务主机的ip地址(一般是局域网ip,samba服务比较适用于局域网,因为它的文件传输协议较为简单)

示例是在局域网中测试

可以看到,之前在配置文件中添加的共享配置信息已经有成效了,同时还有一个homes的共享目录,这是samba用户的家目录作为共享目录,默认是配置开启的,如果不需要可以在对应的配置文件中设置:

找到有关home目录共享的设置

找到相应的配置信息,将有关home目录的共享设置注释即可,重启samba服务,再次刷新网络:

这下仅会展示你设置允许共享的目录,双击输入用户名和密码即可访问共享内容。

按照以上方式安装的samba服务默认是开机自启,如果是以共享磁盘的形式作为服务,需要你继续进行开机自动挂载的配置,配置文件是 /etc/fstab ,可以自行参考网上自动挂载教程进行设置。

可能会有一些比较烦人的问题,需要你在安装和配置samba服务的过程中重视,尤其是涉及到权限的问题。挂载外接磁盘,所属者和所属组默认均为root,所以访问磁盘内容需要拥有root或root组权限,这里需要注意的是你所添加的samba用户必须要足够的权限访问你的共享目录,否则无法访问共享目录中的内容,这也是在使用samba服务过程中比较常见的问题。所以请务必确保你的共享目录所属者或所属组的权限设置,允许samba账户的正常访问:

为了方便起见,共享目录的所属者和所属组权限设置与samba服务配置文件中的设置保持一致

我个人的习惯比较极端,树莓派上设置是禁用root账户,需要使用超级权限的时候是借助sudo工具提权的,虽然这样做麻烦一些,但是为了给服务器多加一道安全机制和尽量避免误操作情况的发生,这么做也是值得的。

我本人也是刚接触树莓派不久的萌新,对树莓派和Linux操作系统的特性理解程度有限,文章中出现的各类疏漏与错误欢迎在评论区批评指正,互相分享学习经验;也请懂行的大佬们不吝赐教,鼓励一下像我这样的小白,感激不尽!


Raspberry Pi Samba文件传输服务搭建的评论 (共 条)

分享到微博请遵守国家法律