我正在尝试设置 rsync 以备份到远程 ssh 服务器,但出现此错误:
rsync: opendir "/home/backup/." failed: Permission denied (13)
这是 rsync 命令:
sudo -u admin rsync -avzh /home/backup/ [email protected]:/home/sam/prodweb
我尝试以管理员用户身份运行该命令,因为他有权访问备份文件夹内的 tar 文件。这是文件夹所在的设置:
sudo ls -l /home/
total 4
drwx--x--x. 9 admin admin 172 Mar 19 12:49 admin
drwx--x--x. 3 backup backup 4096 Apr 8 03:10 backup
drwx------. 6 sam sam 228 Apr 3 15:08 sam
sudo ls -l /home/backup/
total 12902820
-rw-r----- 1 admin admin 214722560 Apr 6 03:10 admin.2020-04-06_03-10-12.tar
-rw-r----- 1 admin admin 214702080 Apr 7 03:10 admin.2020-04-07_03-10-13.tar
-rw-r----- 1 admin admin 214732800 Apr 8 03:10 admin.2020-04-08_03-10-13.tar
我尝试以备份用户身份运行该命令,但出现相同的错误,但是在读取各个文件时(因为它们是管理员拥有的),这是一个 VestaCP 设置,以防有人找到不同的解决方案。我尝试过使用远程 sftp 设置,但我没有运气,加上 Rsync,我可以使用 ssh 密钥。
我认为问题是因为该文件夹由备份用户拥有,文件由管理员用户拥有。我还是ubuntu和centos的初学者。我试图保持权限不变,因为每天早上在 VestaCP 备份之后我都会从 Cron 运行此命令。
谢谢
答案1
您的管理员用户无权列出该/home/backup
目录的内容。
放宽权限。例如,如果您的管理员用户是该组的成员,admin
您可以考虑这样做
chgrp admin /home/backup
chmod g=rx /home/backup