群晖NAS通过rsync模块同步至Mac外接硬盘时遇权限拒绝错误
解决rsync模块模式无法同步Mac外接硬盘的问题
问题背景
要将群晖NAS文件备份到Mac外接硬盘,使用rsync模块模式(::nas_backup_test)时,指向/Volumes外接硬盘目录同步失败,报错Operation not permitted;但使用SSH路径模式(:/Volumes/Untitled)可正常同步,排除文件权限和网络问题,问题出在rsyncd守护进程的配置或系统权限限制。
排查与解决方案
方案1:给rsyncd添加全盘访问权限(Mac TCC隐私限制)
Mac的TCC(透明同意与控制)框架会限制系统进程访问外接存储,rsyncd作为守护进程默认可能没有权限访问/Volumes目录:
- 打开「系统设置」→「隐私与安全性」→「全盘访问」
- 点击左下角锁图标解锁,点击「+」按钮
- 导航到
/usr/bin/rsync,将其添加到允许列表 - 重启rsyncd服务:
sudo launchctl stop com.apple.rsyncd sudo launchctl start com.apple.rsyncd
方案2:调整外接硬盘挂载选项
若硬盘挂载时带有noowners等限制选项,会导致root用户也无法正常写入:
- 查看当前挂载选项:
mount | grep /Volumes/Untitled - 卸载并重新挂载硬盘(替换
disk2s1为你的硬盘设备名,可通过diskutil list查看):sudo umount /Volumes/Untitled sudo mount -o rw,owners /dev/disk2s1 /Volumes/Untitled - 重启rsyncd服务后重新测试同步。
方案3:临时规避权限验证(用于确认问题)
在NAS端执行同步命令时跳过权限和时间戳设置,验证是否为权限限制导致:
rsync -avz --no-perms --omit-dir-times files bpjobin@<ipaddress>::nas_backup_test
若同步成功,说明核心问题是rsyncd无法设置文件权限/时间戳,需回到方案1或2解决根本问题。
原因说明
- SSH模式的rsync通过用户bpjobin的shell会话运行,继承了用户的所有访问权限(包括外接硬盘的权限);而rsyncd是独立的系统守护进程,受Mac隐私保护框架限制,即使配置了
uid=root,也可能被阻止访问外接存储。 - 报错中的
Operation not permitted并非传统文件权限问题,而是系统层面的访问控制限制,因此修改rsyncd配置中的uid/gid无法解决。
内容的提问来源于stack exchange,提问作者Bruno-Pierre
相关产品推荐
相关产品推荐

