【发布时间】:2014-09-09 10:47:37
【问题描述】:
我正在尝试与我的服务器进行 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]
This post 建议在sudoers 中禁用require_tty 和tty_tickets,但我在/etc/sudoers 文件中找不到这些选项。
我已将Defaults !tty_tickets 添加到sudoers,但仍然是相同的消息。
知道我还需要做什么才能使其正常工作吗?
【问题讨论】: