为什么我需要 sudo 的 tty?要求它有什么安全好处?

时间:2021-06-15 12:04:42

标签: security virtual-machine sudo tty

我目前正在为我的学校做一个项目,旨在在 VM 中创建一个服务器。

该主题的要求之一是在模拟的 Debian Linux 上安装 sudo,并在 sudoers 配置文件中包含以下字段:

Defaults        requiretty

要求我设置的主题行:

  • 出于安全原因,必须启用 TTY 模式。

我知道 tty 是一个命令,它打印当前连接到标准输入的终端的文件名。但是,我看不到这是如何确保服务器的更多安全性。

1 个答案:

答案 0 :(得分:1)

设置 requiretty 后,sudo 必须从登录的终端会话(tty)运行。这可以防止 sudo 从守护进程或其他分离的进程(如 cronjobs 或网络服务器插件)中使用。这也意味着您不能在不设置终端会话的情况下直接从 ssh 调用运行它。

这可以防止某些类型的升级攻击。例如,如果我有办法为具有 NOPASSWD sudo 权限的用户修改 crontab,我可以使用它以 root 身份启动工作。使用 requiretty,我不能这样做...

...很容易。这个限制不是特别难规避,所以与它打破的有效用例相比,通常不是那么有用。 Red Hat 曾经使用过它,但 removed it 几年前。

相关问题