security - 为什么我要为 sudo 要求一个 tty?要求它的安全好处是什么?

标签 security virtual-machine sudo tty

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

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

Defaults        requiretty

要求我设置的主题行:

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

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

最佳答案

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

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

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

关于security - 为什么我要为 sudo 要求一个 tty?要求它的安全好处是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67985925/

相关文章:

php - 如何防止 PHP 中的 SQL 注入(inject)?

ssh - 无法在 Arch Linux VM 中运行 tmux

python - 语法错误 : invalid syntax to repo init in the AOSP code

windows - 在硬盘上启动 native 操作系统作为虚拟机

java - 更新对象属性

java - 如何禁用 SSL session 缓存服务器端 java?

javascript - Firebase javascript 安全性?

linux - 如何在启动时运行 sudo 命令?

bash - 如何使用 sudo 运行两个命令?

java - 如何在Java中发现具有管理员权限的linux用户名