相关疑难解决方法(0)

vim 可以以 root 身份编辑远程文件吗?

我发现这个问题解释了如何使用 vim 编辑远程文件:

vim scp://user@myserver[:port]//path/to/file.txt
Run Code Online (Sandbox Code Playgroud)

是否可以sudo在远程主机上以 root(通过)身份执行此操作?

我已经尝试在远程主机上创建一个具有 root 权限的文件并使用上述内容进行编辑。Vim 可以看到内容,可以编辑它,可以保存它,但在远程主机上没有任何变化(可能是因为 vim 只是保存它的临时文件,然后把它交给 scp 放回去?)

使用我的用户保存的文件执行此操作时,它的行为符合预期。

我的 SSH 使用密钥进行身份验证,并且远程服务器具有用于我的 sudo 访问的 NOPASSWD

这个问题是类似的,但唯一的投票答案使用了 puppet,这绝对不是我想要使用的。


编辑:为了回应@drewbenn 在下面的评论,这是我的完整编辑过程:

vim scp://nagios//tmp/notouch
Run Code Online (Sandbox Code Playgroud)

/tmp/notouchroot拥有的文件在哪里,我看vim很快就显示

:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Run Code Online (Sandbox Code Playgroud)

这会自动消失以产生带有文本的空黑屏

"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

按 Enter 允许我编辑文件

保存弹出和开头一样的scp命令,很快自动消失(很难及时读取但是scp和/tmp/...文件肯定在那里)

vim remote sudo

11
推荐指数
2
解决办法
3089
查看次数

从 sftp cat 远程文件

我在 SFTP 会话中并导航到一个深层目录。我做了ls -l,看到了一个小文件,想读一读。我更愿意在我还在使用 SFTP 时执行它,而不是启动一个新终端,执行 SSH,导航到那个深层目录,然后阅读它,然后返回到 SFTP 继续。

有没有办法做到这一点?

SFTP 没有cat命令。

我试过get file -,希望它会被-视为标准输出,但这只会创建一个名为“-”的文件。

我试过了get file /dev/stdout,但结果是:

sftp> get file /dev/stdout
Fetching /home/username/file to /dev/stdout
/home/username/file                100%  506     9.0KB/s   00:00
ftruncate "/dev/stdout": Invalid argument
Couldn't write to "/dev/stdout": Illegal seek
Run Code Online (Sandbox Code Playgroud)

另一种方法可能是get file /tmp/file,从 SFTP 出来,读取 /tmp/file,删除 /tmp/file,然后返回到 SFTP,但这同样乏味。有没有简单的方法?

sftp

4
推荐指数
1
解决办法
2017
查看次数

标签 统计

remote ×1

sftp ×1

sudo ×1

vim ×1