![如何使用 sudo 用户将文件从本地系统中的 /opt 目录复制到远程系统中的 /opt 目录](https://linux22.com/image/793788/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20sudo%20%E7%94%A8%E6%88%B7%E5%B0%86%E6%96%87%E4%BB%B6%E4%BB%8E%E6%9C%AC%E5%9C%B0%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%20%2Fopt%20%E7%9B%AE%E5%BD%95%E5%A4%8D%E5%88%B6%E5%88%B0%E8%BF%9C%E7%A8%8B%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%20%2Fopt%20%E7%9B%AE%E5%BD%95.png)
我有一台 Redhat 机器,在 /opt 目录下有一些文件。我想使用 rsync 命令将这些文件复制到远程机器 /opt 目录中。条件是我使用的是属于 wheel 组的管理员用户。
我尝试按照命令来传输文件,但出现权限被拒绝错误。
#rsync -avz -e "ssh -t" /opt/*.txt admin@ip:/opt
当我运行此命令时,我收到了这样的错误您遇到的错误消息 mkstemp“/opt/test.txt”失败:权限被拒绝(13) 表示 rsync 进程正在尝试在目录(/opt)中创建一个临时文件(test.txt),但它没有必要的权限。
有人知道如何处理吗
答案1
你试过使用 scp 语法如下
scp /opt/文件名.txt[电子邮件保护]:/选择
这里root是root用户名,请使用有sudo权限的用户。filename.txt是文件的名称
如果远程计算机中存在同名文件,请考虑在执行操作之前重命名它。
如果这不起作用,请先将文件复制到临时文件夹,然后将其复制到本地 opt。
答案2
首先,检查管理员用户是否具有 /opt 目录传输数据的必要权限。然后重试。
ls -ld /opt
使用此命令检查/opt目录的权限
答案3
如果我们提供 /opt 目录的完整权限,那么它就可以正常工作 chmod -R /opt然后使用rsync -avz -e "ssh -t" /opt/*.txt admin@ip:/opt,未经许可,/opt 目录不允许从其他用户复制文件,因为它具有 root 所有权。
这就是我所学到的。