rsync备份脚本执行时出现Permission denied(13)权限问题的解决咨询
rsync备份脚本执行时出现Permission denied(13)权限问题的解决咨询
看起来你在给MC服务器文件做USB备份时遇到了权限卡壳的问题,我来帮你拆解一下原因和解决办法:
核心问题:USB挂载点的权限限制
你遇到的Permission denied错误,本质不是源目录的权限问题(毕竟源目录已经是drwxrwxrwx+,而且你的用户也在minecraft-runners组里),而是USB驱动器的挂载权限没有给你的用户/组足够的写入权限。默认情况下,USB盘挂载后往往只有root或者特定用户有读写权限,导致rsync没法在上面创建目录或写入文件。
分步解决办法
1. 先检查当前USB挂载点的权限
先运行这条命令看看挂载点的权限细节:
ls -ld /home/user/sandisk-usb
如果输出是类似drwxr-xr-x的格式,说明组和其他用户只有读权限,没有写入权限,这就是问题根源。
2. 重新挂载USB盘并设置正确权限
首先卸载当前挂载的USB盘:
sudo umount /home/user/sandisk-usb
然后重新挂载,明确指定你的用户和所属组拥有读写权限(把user换成你的实际用户名,minecraft-runners保留):
sudo mount /dev/sdX1 /home/user/sandisk-usb -o uid=user,gid=minecraft-runners,umask=002
uid=user:让你的用户成为挂载点的所有者gid=minecraft-runners:把挂载点的组设置为你的MC服务组umask=002:保证目录权限是775、文件权限是664,组内成员有读写权限
3. 验证挂载权限并重新测试脚本
再次运行ls -ld /home/user/sandisk-usb,如果输出显示drwxrwxr-x,所有者是你的用户、组是minecraft-runners,那就没问题了。
现在直接运行你的rsync脚本,不需要手动创建目录,应该能正常同步所有子目录,不会再出现权限错误。
额外的crontab准备建议
因为你之后要把脚本放到crontab里定期执行,记得做这两件事:
- 把USB盘的挂载配置写到
/etc/fstab里,确保开机自动挂载(避免crontab执行时USB没挂载导致失败)。比如添加一行(注意替换文件系统类型,FAT32的话用vfat):/dev/sdX1 /home/user/sandisk-usb ext4 defaults,uid=user,gid=minecraft-runners,umask=002 0 2 - 测试crontab任务时,可以先设置一个短周期(比如5分钟后执行),确认脚本能正常运行再调整到你需要的频率。
备注:内容来源于stack exchange,提问作者spirledaxis
相关产品推荐
相关产品推荐

