如何在没有 pty 的情况下获得 shell

如何在没有 pty 的情况下获得 shell

我正在修复一个失败的脚本,因为它sudo在没有 pty 的环境中调用,而 pty 有一个 sudoers 文件定义Default requiretty.

该脚本由 执行root并用于sudo调用依赖于特定用户执行的二进制文件,因此我的解决方案是将其替换sudosu.

现在我想测试我的修改,但我很难重现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" 

相关内容