通过午夜指挥官和 sftp 执行 sudo 命令

通过午夜指挥官和 sftp 执行 sudo 命令

我使用午夜指挥官 sftp 到我的 ubuntu VPS。

VPS 需要 sudo 来执行任何重要操作,例如复制/移动/删除文件。因此,例如我无法按进行F5复制(除了复制到~)。

sudomc 是否可以在需要时请求用户提升/发送?

答案1

对的,这是可能的。我不知道mc内部原理,但通常您必须sftp-server通过 调用远程主机sudo。有两种方法可以做到这一点,在客户端或在服务器上。在客户端,您必须知道如何mc调用sftp并修改如何mc调用它。在服务器上更容易,您可以通过ForceCommand.看https://unix.stackexchange.com/a/637624/330987

客户端上的更改(sudo在远程主机上配置)

仅供参考,无法使用RemoteCommand选项,sftp会因错误而失败Cannot execute command-line and remote command.(因为在后台sftp调用ssh ... -oRemoteCommand="/usr/bin/sudo /usr/libexec/sftp-server" ... -- localhost sftpsftp在后台命令的末尾似乎与远程命令选项)

sftp -b - -s '/usr/bin/sudo /usr/libexec/sftp-server'

但由于尚不清楚如何mc使用 SFTP,我建议采用服务器端方法(见下文)。

在服务器上更改

LogLevel DEBUG3
AuthorizedKeysFile      .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no
Subsystem       sftp    /usr/libexec/sftp-server
Match User <mc user>
        X11Forwarding no
        AllowTcpForwarding no
        PermitTTY no
        ForceCommand /usr/bin/sudo /usr/libexec/sftp-server

相关内容