【问题标题】:How to sudo su over PuTTY's psftp.exe如何通过 PuTTY 的 psftp.exe sudo su
【发布时间】:2016-01-12 17:32:47
【问题描述】:

使用 (PuTTY) PSFTP.exe 可以打开一个 shell 脚本以在 Linux 上执行某些操作。

在本例中,我使用psftp.exe 打开get30.txt 文件。

%%PROJECT/ROOT_DIRECTORY%%\PuTTY\psftp.exe user@domain.nl -pw password -b "%%PROJECT/ROOT_DIRECTORY%%\Scripts\%%ENVIRONMENT/NAME%%\get30.txt"

get30.txt我有以下操作:

sudo su -l4097gps
cd /appl/gps/RIT/IN/30/RAP-T1
chmod 777 GP*.*
get -r /appl/gps/RIT/IN/30/RAP-T1
rm /appl/gps/RIT/IN/30/RAP-T1/*
quit

很遗憾,psftp 无法识别 sudo su

我用自己的用户登录后如何sudo 给其他用户?

【问题讨论】:

    标签: linux sftp putty sudo su


    【解决方案1】:

    这是不可能的。您发送的那些命令不是任意的 shell 命令 - 它们是 SFTP 命令。它们恰好看起来像 shell 命令(rm、cd 等),但它们只是镜像 shell 等价物。大多数 SFTP 实现中都没有“sudo”命令,因此您不能这样做。

    我错的唯一情况是,如果您使用的是支持“su”的自定义 SFTP 服务器和客户端,例如 Van Dyke 软件提供的那种。但是,您将在那里使用“su”,并且需要进行身份验证,而不是使用“sudo”。

    另外,请参阅 serverfault stackoverflow 上的这篇文章:

    How to change user for more rights on a sftp client

    【讨论】:

    • 只是补充一下,听起来 OP 可能会混淆 SSHSFTP,这是非常合理的,因为 SFTPSSH 一起汇总,但这是完全不同的协议。我完全同意为寻求提升 SFTP 用户对他们尝试从中 SFTP 文件的文件或目录的权限而进行的编辑。
    【解决方案2】:

    sudo 是一个 shell 命令,而不是 SFTP 命令。

    一般的 SFTP 协议和 psftp 命令中都没有 sudo 或等效项。

    虽然如果您要连接到 OpenSSH 服务器,您可以使用以下命令指示它以提升的权限运行 SFTP 子系统/服务器:

    sudo /bin/sftp-server
    

    很遗憾,psftp 不允许您更改用于启动 SFTP 服务器的命令。

    您可以改用 WinSCP:

    open sftp://user:password@domain.nl/ -rawsettings SftpServer="sudo /bin/sftp-server"
    

    但是要允许这项工作有很多限制。特别是sudo 可能不需要密码。详情见WinSCP常见问题How do I change user after login (e.g. su root)?

    另请参阅converting PuTTY PSFTP script to WinSCP script 的指南。

    (我是 WinSCP 的作者)

    【讨论】:

    • 我看到的最佳答案:) 但是...是否可以在 WinSCP 中添加对 sudo 密码的支持?
    • @Znik 由于与 SFTP 协议的冲突,无法完全支持。但是有一些限制(如果 sudo 配置为不需要 TTY),它可能会起作用。您可以在winscp.net/tracker/1247 投票支持此功能
    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2017-05-13
    相关资源
    最近更新 更多