在树莓派上搭建 Samba 服务

1. 安装 Samba

1
sudo apt sintall samba

2. 编辑配置文件

/etc/samba/smb.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Global parameters
[global]
    log file = /var/log/samba/log.%m
    max log size = 50
    syslog = 0
    panic action = /usr/share/samba/panic-action %d
    usershare allow guests = Yes
    load printers = No  # 没有打印机,不需要加载
    client max protocol = SMB3  # 设置客户端最大协议版本
    client min protocol = SMB2  # 设置客户端最小协议版本
    server min protocol = SMB2  # 服务器最小协议版本
    map to guest = Bad User
    obey pam restrictions = Yes
    pam password change = Yes
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    passwd program = /usr/bin/passwd %u
    security = USER  # 开启非匿名访问
    server role = standalone server
    unix password sync = Yes
    dns proxy = No
    idmap config * : backend = tdb

# 共享文件夹名称
[myshares]
    comment = my shares
    path = /mnt/hdd # 此处为需要共享的目录
    read only = No
    writeable = yes # 开启可写( testparm 默认不显示 )

关于 Samba 协议版本:由于 Windows 10 已经默认不支持 SMBv1 了 ( 仍可通过 「启用或关闭 Windows 功能」 来开启对 SMBv1 的支持 ),所以这里将协议版本设置为 SMBv2 。

2.1. 测试配置是否正确

1
testparm

3. 建立 Samba 账户

3.1. 新建系统账户

待创建的 Samba 账户必须已经在 Linux 中存在;此处也可直接用已经存在的账户,不要新建。

1
2
3
sudo useradd -G users smb
sudo passwd smb
(输入两次密码,此为 Linux 账户的密码,非 Samba 账户的访问密码)

3.2. 使用 pdbedit 新增 Samba 账户

1
2
sudo pdbedit -a -u smb
(接下来输入 smb 的密码)

3.2.1. 查询目前已经存在的 Samba 账号

1
pdbedit -L

3.2.2 修改密码

1
smbpasswd smb

4. 重启 Samba 服务确保新配置生效

1
systemctl restart smbd.service && systemctl restart nmbd.service

5. 其他

5.1. 关于挂载 NTFS 的移动硬盘遇到的坑

使用 sudo mount /dev/sda1 /mnt/hdd 挂载以后,发现登录 Samba 后无法写入,总是提示没有权限。几番折腾发现是 Linux 内核对 NTFS 文件系统的支持不足,只支持读取,要写入的话需要安装第三方 NTFS 支持包 ntfs-3g,安装后在挂载时加上参数 -t ntfs-3g 即可。

本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于 2023/06/21 14:42 CST
使用 Hugo 构建
主题 StackJimmy 设计