心梦后花园

Back

本文章介绍怎么在 archlinux 上安装 samba 进行文件共享,主要参考 ArchWiki

服务器#

安装#

安装 软件包 samba

sudo pacman -Sy samba
shell

Samba 服务的配置文件是 /etc/samba/smb.conf,但是 archlinux 仓库的 Samba 软件没提供配置文件,需要自己从 Samba 的 Git 仓库 可以获取到示例文件smb.conf.default

curl "https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD" -o /etc/samba/smb.conf
shell

使服务器可被发现#

安装 avahi包 软件包, 然后启用/启动 avahi-daemon.service 以通过 Zeroconf 使 Samba 服务器可被发现。

pacman -S avahi
systemctl enable --now avahi-daemon.service
shell

如果avahi-daemon.service 尚未运行,服务器仍可被访问,仅不可被发现,也就是说,它不会出现在文件管理器中,但你仍可直接通过 IP 或者域名连接它。

用户管理#

添加用户#

Samba 需要 Linux 账户才能使用 - 可以使用已有账户或 创建新用户。 虽然用户名可以和 Linux 系统共享,Samba 使用单独的密码管理,下面我的案例使用 samba用户进行,先创建 samba 用户组,再创建用户。

groupadd samba
useradd -m -g samba samba
smbpasswd -a samba ##设置smb密码
shell

要让新创建的用户仅能访问 Samba 远程文件服务器,可以禁用其它登录选项,禁用 shell - usermod --shell /usr/bin/nologin --lock samba

查询用户#

pdbedit(8) 命令查询现有用户:

更改 samba 用户的密码#

smbpasswd 修改 samba 用户的密码:

smbpasswd samba
shell

创建共享#

修改/etc/samba/smb.conf 文件:

[root@archlinux ~]# vim /etc/samba/smb.conf
---
[public]  
  comment = Public Stuff  
  path = /home/samba/share/  
  public = yes  
  writable = yes  
  printable = no  
  valid users = samba
---
shell

只需要修改 [public] 部分即可。

运行服务#

为了能够使用 SMB 进行基本的文件共享,start/enable smb.servicenmb.service 服务。更多信息参阅 smbdnmbd 的 man 手册。 nmb.service 并不总是需要启用。

systemctl enable --now smb.service
systemctl enable --now nmb.service
shell

客户端配置#

装轻量级的 cifs-utils。大部分桌面自带的文件管理器都支持挂载 Samba 。例如 KDE 桌面的 Dolphin :

Screenshot_20230611_100514.png

也可以使用 mount 命令进行挂载:

mkdir /mnt/mountpoint
mount -t cifs //<SERVER>/<sharename> /mnt/<mountpoint> -o user=<username>,password=<password>
shell

SERVER :服务器名,如 192.168.122.122。

sharename : 共享目录,/etc/samba/smb.conf 里面的部分,本文配置为 public

mountpoint :本地的挂载点,如 /mnt/samba/ ,需要先创建此文件夹。

注意:结尾不要加 /. //<SERVER>/<sharename>/ 无法工作

保存共享密码#

不建议将密码保存在所有人都可读的文件中,一个更安全的方式是创建密码文件:

/path/to/credentials/share
-----------------------------------
username=<myuser>
password=<mypass>
shell

user=<username>,password=<password> 替换为 credentials=/path/to/credentials/share.

修改密码文件的权限:

# chmod 600 /path/to/credentials/share
shell
在Archlinux安装Samba服务
https://www.liyp.cc/blog/install-samba-on-archlinux-file-sharing
Author 万古一梦
Published at 2023年6月21日
Comment seems to stuck. Try to refresh?✨