我正在尝试与我的服务器rsync文件,该服务器已禁用通过ssh进行root登录。我正在尝试使用我创建并添加到轮子组的一个用户。通常,当我通过ssh登录时,我会运行
su - root
然后键入密码,可以作为root
用户运行所有内容,但不太确定如何使用rsync
,因为我需要将文件上传到用户目录之外。
当我运行时:
rsync -avz files/* sshwheeluser@ip_address:/home/newproject/public_html/
我得到:
rsync: ERROR: cannot stat destination "/home/newproject/public_html/": Permission denied (13)
我已将以下内容添加到/etc/sudoers
文件中:
rsyncuser ALL= NOPASSWD:/usr/bin/rsync
加上我没有评论:
%wheel ALL=(ALL) NOPASSWD: ALL
正如一些帖子中所建议的,我也尝试过用–rsync-path="sudo rsync"
运行命令,但仍然没有成功:
rsync -avz –rsync-path="sudo rsync" files/* sshwheeluser@ip_address:/home/newproject/public_html/
接下来,我尝试将其与额外的-e "ssh"
:一起使用
rsync -avz -e "ssh" –rsync-path="sudo rsync" files/* sshwheeluser@ip_address:/home/newproject/public_html/
它改变了错误消息(看起来我们正在取得进展):
stdin: is not a tty
sudo: sorry, you must have a tty to run sudo
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-40/rsync/io.c(452) [sender=2.6.9]
这篇文章建议在sudoers
中禁用require_tty
和tty_tickets
,但我在/etc/sudoers文件中找不到这些选项。
我已经将Defaults !tty_tickets
添加到了sudoers
中(根据建议),但仍然是相同的消息。
你知道我还需要做什么才能让它发挥作用吗?
您应该检查Selinux日志,rsync
可能已被Selinux阻止。
您也可以尝试运行:
semanage permissive -a rsync_t