如何以 sudo 用户身份(非交互方式)root
从远程服务器(通过scp
或)下载需要权限的文件?rsync
笔记该 sudo 用户未配置为不需要命令密码sudo
。并sshpass
安装在本地和远程系统上。
下载命令可能如下所示
sshpass -p {sudo-user-pass} scp {sudo-user}@{host}:/path/to/some/root/owned/file.tar.gz ./
此命令会给出“权限被拒绝”错误,因为file.tar.gz
该错误由 root 拥有。
为了下载这个文件,sudo用户应该切换到rootsudo -su
那么有没有办法让scp
sudorsync
用户可以切换到 root 并下载 root 拥有的文件(非交互式)?
答案1
看这个答案。 SCP 本身不允许这样做,但您可以快速执行“ssh sudo cat”来达到相同的效果。对于大量文件来说,它不能很好地扩展,但对于 1 个文件来说,它可能就足够了。