AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 557120
Accepted
Tim
Tim
Asked: 2019-12-14 13:04:42 +0800 CST2019-12-14 13:04:42 +0800 CST 2019-12-14 13:04:42 +0800 CST

为什么通过`sudo rsync`传输文件到另一台计算机需要目标计算机的root密码?[复制]

  • 772
这个问题在这里已经有了答案:
如何在本地使用 rsync(使用无密码 ssh)和 sudo? (1 个回答)
2年前关闭。

我正在尝试将目录传输到另一台计算机

$ rsync -a --delete --stats -h wget 'olive:/tmp'

Number of files: 5 (reg: 4, dir: 1)
Number of created files: 5 (reg: 4, dir: 1)
Number of deleted files: 0
Number of regular files transferred: 4
Total file size: 12.94K bytes
Total transferred file size: 12.94K bytes
Literal data: 12.94K bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 13.31K
Total bytes received: 103

sent 13.31K bytes  received 103 bytes  5.36K bytes/sec
total size is 12.94K  speedup is 0.96

如果源目录包含一些需要本地 root 权限的文件,我添加sudo. 这是对的吗?

但是为什么它一直要求我输入另一台计算机的 root 密码?我提供了目的地根的密码,但它一直在要求它。

$ sudo rsync -a --delete --stats -h wget 'olive:/tmp'
root@olive's password: 
Permission denied, please try again.
root@olive's password: 

如果我想复制需要本地root权限的源文件怎么办?

我尝试了建议的副本,但没有用

$ sudo rsync -e 'ssh -i /home/t/.ssh/id_rsa' -a --delete --stats -h wget 'olive:/tmp'
root@olive's password: 
Permission denied, please try again.
root@olive's password: 

谢谢。

sudo rsync
  • 2 2 个回答
  • 397 Views

2 个回答

  • Voted
  1. Best Answer
    telcoM
    2019-12-14T14:43:58+08:002019-12-14T14:43:58+08:00

    从您的上一个示例中,您的非 root 用户名似乎是t.

    当您使用ssh,scp或rsync不指定远程用户名时,工具将假定远程用户名与本地用户名相同。所以你的第一个例子中的命令:

    rsync -a --delete --stats -h wget 'olive:/tmp'
    

    可以更明确地写成:

    rsync -a --delete --stats -h wget 't@olive:/tmp'
    

    当您为命令添加前缀时sudo,它会更改用户名,命令行的其余部分将作为(到root,除非sudo -u <username>使用)执行。

    所以,你的第二个例子:

    sudo rsync -a --delete --stats -h wget 'olive:/tmp'
    

    现在相当于:

    sudo rsync -a --delete --stats -h wget 'root@olive:/tmp'
    

    因为该rsync命令以 root 身份运行,并且由于未定义远程用户名,所以它假设您也想在远程端使用 root 帐户执行 rsync 操作。


    修复:使用rsyncwith 时sudo,请明确说明您要使用的远程用户名:

    sudo rsync -a --delete --stats -h wget 't@olive:/tmp'
    

    或者如果这不起作用(即您sudo的配置always_set_home启用了该选项,因此它会更改$HOME使用它执行的命令的环境变量以匹配将要运行该命令的用户),然后尝试这种形式的第三个示例:

    sudo rsync -e 'ssh -i /home/t/.ssh/id_rsa' -a --delete --stats -h wget 't@olive:/tmp'
    

    在这种形式中,该rsync命令在本地以 身份执行,但以用户身份root登录- 这似乎根据您的第一个示例设置了 SSH 密钥。olivet

    不, (或!)操作的两端的用户名不必相同-省略远程用户名只是用户名相同时常见情况的简写。rsyncscp

    • 2
  2. Omkar the AWK Ninja
    2019-12-14T13:41:35+08:002019-12-14T13:41:35+08:00

    这取决于您以什么帐户运行 rsync 命令。如果您以 root 身份运行,那么它希望您在目标系统上具有 root 权限

    • 1

相关问题

  • sudo nautilus 和 sudo -E nautilus 的区别

  • rsync 排除问题

  • rsync 端口 22 和 873 使用

  • 以其他用户身份运行单个命令;sudo 的限制

  • 允许用户以 root 身份运行命令

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve