如何通过PuTTY的psftp.exe sudo su

时间:2015-10-14 14:45:22

标签: linux sftp putty sudo su

使用(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给不同的用户?

2 个答案:

答案 0 :(得分:3)

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

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

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

How to change user for more rights on a sftp client

答案 1 :(得分:1)

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

SFTP协议中没有sudo或等效项,一般不在psftp命令中。

虽然如果要连接到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的作者)