使用以下命令连接到 SFTP 服务器后,我需要sudo
用户“admin”。
sftp user@hostname
sftp> sudo su - admin
Invalid command.
我还有其他方法可以使用吗sudo
?
答案1
不能使用 SFTP 更改用户这一说法并不完全正确。
例如,即使您要连接到常见的 OpenSSH 服务器,您也可以使用 SFTP 服务器启动命令指示它以提升的权限运行 SFTP 子系统/服务器,例如:
sudo /path/to/sftp-server
例如,对于 OpenSSHsftp
客户端,您可以使用以下内容:
sftp -s "sudo /path/to/sftp-server" [email protected]
或者使用(我的)WinSCP SFTP 客户端,您还可以覆盖 SFTP 服务器启动命令(都在图形用户界面和脚本)。
但要实现这一点有很多限制。特别是sudo
可能不需要密码和 TTY。详情请参见WinSCP常见问题解答登录后如何更改用户(例如su root)?
答案2
FTP / SFTP 不是可以运行命令的 shell。它是一个非常专用的协议,用于文件传输和相关操作。因此,该sftp
程序只能为您提供该协议功能的命令接口。
所以,根据不存在的设计sftp
,你不能。
如果您可以通过 plain 访问同一台服务器ssh
,然后您可以运行类似命令sudo
并从那里访问您关心的文件,例如,将它们放入存档文件中,为您最初登录的用户专门授予访问权限,然后复制它。