使用 Samba 搭建公共的文件共享服务
Samba 服务是一种能在 Linux/UNIX 系统上实现 SMB(Server Messages Block)协议,用于在不同操作系统(如 Windows 和 Linux)之间共享文件和打印机等资源的网络服务。Windows电脑、Android 手机上都自带了客户端。
本文记录在 Debian Linux 服务器上搭建 Samba 服务,并且允许匿名用户(即访客)存取共享目录中的文件,即搭建公共的文件共享服务器。
安装 🔗
直接使用 apt
安装 samba:
$ apt install samba
使用 whereis
查看:
$ whereis samba
samba: /usr/sbin/samba /usr/lib/aarch64-linux-gnu/samba /etc/samba /usr/libexec/samba /usr/share/samba /usr/share/man/man8/samba.8.gz /usr/share/man/man7/samba.7.gz
配置 🔗
创建共享目录 🔗
假定共享目录为 /mnt/sda1/public_files
。如果不存在,那么创建该文件夹:
$ mkdir /mnt/sda1/public_files
配置 Samba 服务 🔗
配置文件位于 /etc/samba/smb.conf
。添加如下内容:
[public_files]
comment = Public files
path = /mnt/sda1/public_files
browsable = yes
public = yes
guest ok = yes
writable = yes
create mask = 0666
directory mask = 0755
保存配置后重启服务:
$ systemctl restart smbd
查看服务运行状态:
$ systemctl status smbd
重启成功后,通过手机或者其他设备打开“网络邻居”,就会看到Samba服务所在的设备。然后勾选“匿名访问”,即可打开共享目录,看到 public_files
目录。
但是,当此时往该共享目录上传文件,或者在共享目录里创建目录时,很可能就会出错。因为 Samba 服务并没有权限创建文件。
修改共享目录的权限 🔗
默认情况下,Samba 会以 nobody:nogroup
用户创建文件。如果共享目录的所有者不是 nobody:nogroup
,或者改目录不允许 nobody:nogroup
写文件,那么就无法通过网络邻居上传文件了。一个简单的修复方法,是修改共享目录的所有者为 nobody:nogroup
。比如:
$ chown -R nobody:nogroup /mnt/sda1/public_files
另一个方法是允许所有用户能够执行、读和写共享目录:
$ chmod a+wrx /mnt/sda1/public_files
加载中...