1. 问题背景
TrueNAS 上创建数据集:
/mnt/large-pool/homeSMB 共享:
\\192.168.0.40\homeWindows 访问时报错:
You do not have permission to access this folder2. 问题原因
检查目录权限:
ls -ld /mnt/large-pool/home结果:
drwxrwx---+ root wheel权限解释:
项 含义
owner root group wheel mode 770
只有以下用户可以访问:
root
wheel 组成员
普通用户(如 epiphany)不属于 wheel 组,因此无法进入目录。
结果:
SMB 登录成功,但文件系统权限拒绝访问。
3. 临时修复方法
修改 home 根目录权限:
chmod 755 /mnt/large-pool/home权限含义:
755
rwx r-x r-x效果:
用户 权限
owner 完整权限 group 可进入 others 可进入
这样所有用户可以进入 home,但不能修改。
4. 用户目录权限结构
推荐目录结构:
/mnt/large-pool/home
├── epiphany
├── cm313
├── fuyihang
├── minghao
└── wangxin每个用户目录权限:
chown -R epiphany:epiphany /mnt/large-pool/home/epiphany
chmod 700 /mnt/large-pool/home/epiphany权限:
700
rwx------效果:
用户 能访问
自己 ✔ 其他用户 ✖
5. 企业级方案:Samba homes(推荐)
企业 NAS 通常不共享整个 home 目录,而是使用 Samba homes 功能。
特点:
每个用户自动映射自己的目录
用户看不到别人目录
不需要复杂 ACL
访问方式:
\\192.168.0.40Windows 自动显示:
epiphany对应路径:
/mnt/large-pool/home/epiphany6. TrueNAS homes 配置步骤
6.1 创建 home 数据集
Storage
→ Datasets
→ Add Dataset名称:
home路径:
/mnt/large-pool/home权限:
7556.2 创建用户
Accounts
→ Users
→ Add关键设置:
Home Directory:
/mnt/large-pool/home/%U%U 代表用户名。
系统会自动生成:
/mnt/large-pool/home/username6.3 创建 SMB homes 共享
Sharing
→ Windows Shares (SMB)
→ Add设置:
Path:
/mnt/large-pool/home
Name:
homes启用:
Use as Home Share6.4 重启 SMB
service samba_server restart7. 访问效果
Windows 打开:
\\192.168.0.40用户登录:
username: epiphany
password: ***只会看到:
epiphany实际路径:
/mnt/large-pool/home/epiphany用户无法访问其他用户目录。
8. 推荐最终权限结构
/mnt/large-pool/home 755
/mnt/large-pool/home/user 700示例:
home
├── epiphany (700)
├── cm313 (700)
├── minghao (700)9. 常用排查命令
查看数据集:
zfs list查看权限:
ls -ld /mnt/large-pool/home检查 SMB 配置:
testparm -s查看 Samba 用户:
pdbedit -L重启 SMB:
service samba_server restart10. 最佳实践总结
不共享整个
/home使用 Samba homes
用户目录
700home 根目录
755
该配置方式与企业 Linux / NAS 服务器标准一致。