TRAMP 无法编辑我可以通过 ssh 访问的文件

问题描述 投票:0回答:1

我有一个远程服务器,其中有一个由 root 和一个组拥有的文件夹。该组具有写入权限,并且我的用户在该组中。

但是,当我尝试使用 /ssh:user@server:/folder/file 编辑文件并保存它时,它告诉我该文件已写保护,并尝试使用 /sudo:root@server:/ 编辑该文件文件夹/文件。

虽然这确实有效,但我对此感到担心,因为这确实不应该发生。

在远程服务器上使用 ssh 和 nano 就可以了。我真的不明白为什么流浪汉会失败......

使用 /sshfs:user@server:/folder 然后导航到该文件即可。

但是,这会阻止我之后使用 ssh,例如当我使用 /ssh:user@server|sudo::/etc/somefile 编辑一些具有 root 权限的文件时,它似乎试图通过开放的 sshfs 路由并告诉我 sshfs 不支持此功能。

另外,我尝试过使用 /ssh:user@server|sg:group@server:/file 进行 sg,但以多种方式失败。

ssh permissions group tramp
1个回答
0
投票

Tramp 无法连接的潜在原因有多种。 其中之一是远程计算机外壳的提示符。 它必须很简单,否则 Tramp 可能无法检测到它。

为此,您可以更新

tramp-shell-prompt-pattern
用户选项,或者利用 Tramp 在连接时将
TERM
环境变量设置为“dumb”这一事实来修改远程 shell 配置。

请参阅 Tramp FAQ,例如,建议使用 Zsh shell 将以下行添加到远程计算机的

~/.zshrc
文件中:

[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return

对于 Bash,您需要做一些等效的事情。 在所有情况下,您还希望防止提示中的转义序列,例如着色等...

您可能还想通过将 tramp-verbose Emacs Lisp 变量设置为 10 来激活 TRAMP 跟踪缓冲区,然后在 TRAMP 失败时检查跟踪。

Tramp 用户手册中有很多信息也可能有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.