![如何在 Windows GUI 客户端中绕过 tty 使用 sudo](https://linux22.com/image/1287290/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20GUI%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%B8%AD%E7%BB%95%E8%BF%87%20tty%20%E4%BD%BF%E7%94%A8%20sudo.png)
我需要通过 ssh 复制文件,但是权限被拒绝。
我如何通过 Windows 客户端(例如 FileZilla/WinSCP)以 root 身份登录?
我尝试执行命令:
sudo su,但我收到错误:您必须有 tty 才能运行 sudo。
我尝试解决这个错误,但没有成功。
答案1
这里的基本问题是对非人为输入的保护。TTY 确保操作是通过键盘操作执行的,而不是通过其他程序执行的。现在有一种方法可以解决这个问题。
如果您有权访问 sodeors 文件,则可以处理此问题。 这不是真正推荐的方法,但确实是一种可行的方法。
打开该文件/etc/sudoers
并发现以下行:
Defaults:myusername !requiretty
这告诉系统用户myusername
可以执行非键盘操作。现在您可以使用 sudo 命令处理所有文件。
最好是尽量避免这种情况。
答案2
在处理 Amazon Web Services 和 WinSCP 时,调整 sudoers 键盘输入状态不起作用,因为 WinSCP 继续抛出 AWS 不理解的 SSH 命令并会出现 bash 错误。
我遇到了同样的问题,并按照本教程中的步骤解决了它:
答案3
使用 WinSCP,选中“高级选项”框。在环境>SFTP 部分中,选择“sudo su -c /bin/sftp-server”选项。
确实,您的 SSH 服务器必须配置为允许您启动此类命令。
答案4
您必须考虑以 root 用户身份登录服务器,而不是使用su
或sudo
,这可以通过用户名或密码或通过密钥文件来完成。但是,服务器应该允许您这样做;如果不行,您无法远程获得 root 访问权限...