win10/11

启用网络发现和文件共享

  1. 打开控制面板
    • Win + R,输入 control,打开 控制面板
    • 进入 网络和共享中心 > 更改高级共享设置
  2. 配置网络发现和共享
    • 当前配置文件(如“专用网络”)下,启用以下选项:
      • 启用网络发现
      • 启用文件和打印机共享
    • 所有网络 下:
      • 启用密码保护共享(推荐,防止匿名访问)。

创建专用共享账户(安全关键)

  1. 新建本地用户
    • Win + R,输入 lusrmgr.msc,打开 本地用户和组
    • 右键 用户 > 新用户,创建专用共享账户(如 ShareUser),设置强密码(字母+数字+符号)。
  2. 限制账户权限
    • 将账户设置为 标准用户(非管理员),仅用于文件共享。

共享文件夹并配置权限

  1. 共享目标文件夹
    • 右键要共享的文件夹(如 D:\Shared)> 属性 > 共享 > 高级共享
    • 勾选 共享此文件夹,设置共享名称(如 SecureShare)。
  2. 设置共享权限
    • 点击 权限 > 添加,输入共享账户名(如 ShareUser)。
    • 勾选允许的权限(如 读取更改),点击 确定
  3. 配置NTFS权限(双重保护)
    • 回到文件夹属性 > 安全 > 编辑 > 添加,输入 ShareUser
    • 设置具体权限(如 读取和执行列出文件夹内容读取),点击 确定

建议

  1. 禁用不安全的SMB版本(如SMBv1):

    • Win + R,输入 optionalfeatures,取消勾选 SMB 1.0/CIFS 文件共享支持
  2. 避免使用默认的Everyone权限

    • 仅授权必要用户。

Linux

服务端

安装 Samba 服务端

1
2
sudo apt update
sudo apt install samba

创建一个专门用于共享的系统用户

为了安全,我们不直接使用您的个人账户,而是创建一个没有登录权限的专用账户。

1
2
3
4
# 创建一个名为 music_share_user 的用户
# --no-create-home: 不为创建 /home/ 目录
# --disabled-password --disabled-login: 禁止该用户通过SSH等方式登录系统
sudo adduser --no-create-home --disabled-password --disabled-login music_share_user

为这个新用户设置 Samba 密码

这是关键一步。这个密码是专门给Samba服务使用的,与系统登录无关。

1
sudo smbpasswd -a music_share_user

系统会提示您输入并确认密码。请设置一个强密码并妥善保管。

设置共享目录的所有权

将您的音乐目录(例如 /opt/navidrome/music)的所有权交给刚刚创建的新用户。

1
2
3
sudo mkdir -p /opt/navidrome/music
sudo chown -R music_share_user:music_share_user /opt/navidrome/music
sudo chmod -R 775 /opt/navidrome/music

修改 Samba 配置文件

编辑 /etc/samba/smb.conf 文件:

1
sudo nano /etc/samba/smb.conf

在文件的最底部,添加以下安全配置块:

1
2
3
4
5
6
7
8
9
[music_share]
comment = Navidrome Music Library
path = /opt/navidrome/music
browseable = yes
read only = no
# 【核心修改】只允许我们创建的特定用户访问
valid users = music_share_user
create mask = 0775
directory mask = 0775
  • 移除了 guest ok = yes
  • 新增了 valid users = music_share_user,将访问权限严格限制给 music_share_user

Ctrl+X,然后按 Y 和回车保存。

重启 Samba 服务

1
sudo systemctl restart smbd

✅ 您的存储服务器现在配置得既安全又高效。

客户端

安装 Samba 客户端工具

1
2
sudo apt update
sudo apt install cifs-utils

创建一个安全的凭证文件

直接将密码写在 fstab 文件中是不安全的。我们将其存放在一个只有root用户能读取的文件里。

1
2
3
4
# 创建一个目录来存放凭证文件
sudo mkdir -p /etc/samba/
# 创建凭证文件
sudo nano /etc/samba/credentials

在打开的文件中,输入以下两行内容,将密码替换为您在第一步中设置的Samba密码:

1
2
username=music_share_user
password=YOUR_SAMBA_PASSWORD

保存并退出。然后,设置严格的文件权限,确保只有root能读取:

1
sudo chmod 600 /etc/samba/credentials

创建挂载点

1
sudo mkdir -p /mnt/music_share

设置开机自动挂载

编辑 /etc/fstab 文件:

1
sudo nano /etc/fstab

在文件的最底部,添加新的一行。请将 192.168.1.200 替换为您存储服务器的IP地址

1
//192.168.1.200/music_share    /mnt/music_share    cifs    credentials=/etc/samba/credentials,iocharset=utf8,nofail,uid=1000,gid=1000    0    0
  • credentials=/etc/samba/credentials: 告诉系统从我们创建的安全文件中读取用户名和密码。
  • uid=1000,gid=1000: 确保您的普通用户(通常是第一个创建的用户)对挂载的目录有读写权限。

保存并退出。

测试挂载

运行以下命令来立即挂载所有 fstab 中的条目:

1
sudo mount -a