网络_SMB共享文件

本文是基于OpenWRT下的SMB4共享。

Linux系统添加SMB用户、密码

Linux上SMB的用户和Linux用户是两码事。SMB需要另外单独添加用户。

1
smbpasswd -a root

OpenWRT设置

磁盘新建分区、格式化、挂载

  1. 系统 -> 磁盘管理下查看磁盘,点击“弹出”右边的修改按钮,可以看到分区信息。新建分区,并格式化为ext4。
  2. 之后,去系统 -> 挂载点下配置添加挂载,基本设置中,启用此挂载点,UUID选择相应选项,挂载点自定义,手写:如/mnt/shared。高级设置,文件系统选择ext4。
  3. 记得点保存&应用

配置SMB挂载

在openwrt的网络存储 -> 网络共享页面进行设置:

name 目录 容许用户 只读 可浏览 创建权限掩码 目录权限掩码
shared /mnt/shared root 取消勾选 勾选 默认0666 默认0777
上边的“启用macOS兼容共享”经测试,不用勾选。

也可以直接修改配置文件:

1
vim /etc/config/samba4

但是在/etc/samba/smb.conf文件中也有非常类似的设置,还不清楚这两个配置文件之间的从属关系。

相关命令

1
2
3
4
5
6
7
8
9
10
11
# 启动服务
service samba4 start
# 停止服务
service samba4 stop
# 重启服务
service samba4 restart
# 服务状态
service samba4 status

# 配置文件检查
testparm -v

smb输入root账户和密码后拒绝访问

系统默认不允许root访问samba,需要配置smb.conf.templateinvalid users = root前添加一个#号,将本行注释掉即可,这样root就不会被限制访问samba了。
查找smb.conf.template文件:

1
find / -name smb.conf.template

卸载磁盘时device is busy的处理

lsof + 挂载目录位置,如:lsof /mnt/shared
出来列表,kill掉相应的PID即可。
如果是macOS连接过此SMB,kill掉会自动重连,需要在macOS上弹出才行。

挂载目录文件系统问题

共享目录最好使用Ext4文件系统, 因为NTFS或ExFAT在macOS系统下会提示错误码100093。主要原因可能为samba4对NTFS或ExFAT文件系统使用Windows权限控制机制(openwrt是基于Linux的,使用的文件系统一般为ext4)导致权限混乱无法正常写入文件。