![如何在没有 pty 的情况下获得 shell](https://linux22.com/image/113539/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%B2%A1%E6%9C%89%20pty%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%8E%B7%E5%BE%97%20shell.png)
我正在修复一个失败的脚本,因为它sudo
在没有 pty 的环境中调用,而 pty 有一个 sudoers 文件定义Default requiretty
.
该脚本由 执行root
并用于sudo
调用依赖于特定用户执行的二进制文件,因此我的解决方案是将其替换sudo
为su
.
现在我想测试我的修改,但我很难重现sudo
失败的环境:
我可以通过另一个用户访问该计算机,然后以 root 身份使用
sudo su -
.我不知道root
密码。我知道如何在没有 pty 的情况下访问机器
ssh -T
,但是由于失败,我无法再以 root 身份登录sudo
。
如果没有 pty ,我如何获得 root shell ?
答案1
at
我要尝试的第一件事是使用or执行脚本cron
。
例子:
at now <<< "sudo echo 'This will fail if sudoers requiretty' 2>/tmp/stderr >/tmp/stdout"