rsync 权限被拒绝 (13),我做错了什么?

rsync 权限被拒绝 (13),我做错了什么?

我正在尝试将我的网站数据迁移到新服务器并不断收到此错误。我设置了公钥访问并能够使用 .txt 文件完成 rsync,然后我想尝试一个目录,但它不起作用。这是我第一次使用 rsync,因此如果您需要更多信息,请告诉我。

编辑:两者都是远程服务器,旧的是 Ubuntu 14.04.4,新的是 Ubuntu 18.04.3

我对每个目录都有 sudo 权限,但我可能不拥有我要移动的目录。我不知道如何找到答案。

$ rsync -rt /var/www [email protected]:/home
rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-config.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-mail.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wordpress") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-signup.php") failed: Permission denied (13)
rsync: readlink_stat("/var/www/vhosts/testing.site.org/wp-trackback.php") failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]

答案1

这部分在这里:

rsync: recv_generator: mkdir "/home/www" failed: Permission denied (13)

似乎说用户kiana没有足够的权限/home,以便到它。

如何检查文件夹权限

ls -l | grep home从远程服务器上执行/应该可以告诉您谁拥有该文件夹以及它具有哪些访问权限。 -文件夹的标准homeroot:root拥有它的755文件夹权限(阅读更多关于此处的文件夹和文件权限

$ ls -l | grep home
drwxr-xr-x   3 root root  4096 21 mar 14.24 home

root此输出表明具有组的用户root拥有文件夹 (d)home并具有完全权限 (rwx),而该组的其他用户root以及其他人具有读取/执行权限 (rx),但不具有读取/执行权限 (rx)允许。

拥有 -rights 的用户sudo意味着该用户在身份验证后可能暂时拥有 root 权限,这对于rsync.

结论

由于您不是root执行该操作的实际用户rsync(出于安全原因,您不应该是),因此您没有/home文件夹的写入权限。我建议您尝试将网络服务器数据保存在用户kiana可以写入的另一个位置(例如/tmp//opt/)。

答案2

另一个解决方案是添加--rsync-path="sudo rsync"rsync命令。那么你的下一个问题是,你无法在远程服务器上键入(没有 tty,没有交互式提示符)。至少有一个解决方法是暂时地在您的用户的 sudoers 行设置NOPASSWD:(不安全:没有 sudo 密码!)。 rsync 命令运行后,您可以删除不安全的配置。

首先需要有人登录您的服务器才能滥用适度的sudo不安全性。但要权衡利弊。

答案3

/home 目录权限通常只能由 root 写入。
例如,在我的机器上运行 ls 显示 root/root:

$ ls -laF /home
total 12
drwxr-xr-x  3 root     root     4096 Aug 20  2018 ./
drwxr-xr-x 24 root     root     4096 Sep  3 09:00 ../

最好的选择是通过 ssh 进入运行的机器,在 /home 中创建一个目录:

#Note the sudo, or you'd have to su to root
sudo mkdir /home/www 
#Then change the ownership so the user kiana can write to it:
sudo chown kiana:kiana /home/www

相关内容