我目前正在为我的学校做一个项目,旨在在 VM 中创建一个服务器。
该主题的要求之一是在模拟的 Debian Linux 上安装 sudo
,并在 sudoers
配置文件中包含以下字段:
Defaults requiretty
要求我设置的主题行:
我知道 tty
是一个命令,它打印当前连接到标准输入的终端的文件名。但是,我看不到这是如何确保服务器的更多安全性。
答案 0 :(得分:1)
设置 requiretty
后,sudo
必须从登录的终端会话(tty)运行。这可以防止 sudo
从守护进程或其他分离的进程(如 cronjobs 或网络服务器插件)中使用。这也意味着您不能在不设置终端会话的情况下直接从 ssh
调用运行它。
这可以防止某些类型的升级攻击。例如,如果我有办法为具有 NOPASSWD sudo 权限的用户修改 crontab,我可以使用它以 root 身份启动工作。使用 requiretty
,我不能这样做...
...很容易。这个限制不是特别难规避,所以与它打破的有效用例相比,通常不是那么有用。 Red Hat 曾经使用过它,但 removed it 几年前。