有办法使用 WinSCP 在用户帐户之间切换吗?
当我使用PuTTY时,我可以使用
su
命令在不同帐户之间切换用户。
举个例子:
kitis@localhost$
kitis@localhost$ su abc
abc@localhost$
同样,当我使用WinSCP时,有没有办法在登录服务器的情况下切换用户?
WinSCP 网站上有此问题的常见问题解答:
登录后如何更改用户(例如su root)?
您需要在 WinSCP 会话设置中指定
sudo
命令作为自定义 shell(如果您使用 SCP)或在自定义 SFTP 服务器启动命令中使用 sudo
(如果您使用 SFTP)。
虽然有一些限制,特别是您需要配置
sudo
不需要密码。
详情请参阅链接。
如果用户通过 SSH 对另一个用户有 sudo。 按照以下设置,可以通过 WinSCP 对另一个用户使用相同的 sudo。 在文件协议中选择 SCP,传递主机名、用户名和密码/密钥,然后在 Shell 中的SCP/Shell下的高级设置中将值传递为 /usr/bin/sudo -u 用户名 -i,单击“确定”并保存设置。 现在在 Winscp 中,用户以 SCP/Shell 中提供的用户名登录。
不,这是不可能的。当您想使用 SCP(在您的情况下为 WinSCP)切换用户时,您需要重新登录。您不能在SCP会话中运行任何命令,只能管理文件; fnd SCP 协议本身不支持更改当前用户 ID 的机制。如果您想在会话中更改用户,则必须使用 SSH。
在 2024 年,如果您尝试在 Ubuntu 22 上执行此操作,您会发现以下工作:
转到:配置文件管理器 > 编辑配置文件 > 高级 > 高级站点设置 > 环境 > SFTP(不是 Shell)> SFTP 服务器:
sudo su <username> -c /usr/lib/openssh/sftp-server
请注意,您尝试
su
的用户必须分配有有效的 shell(例如 /bin/bash
),它在 /etc/passwd
中为用户指定的最后一个字段中