例如,打开终端并运行sudo apt-get update && sudo apt-get upgrade
.假设有一些更新要安装。不要按任何东西。让终端保持原样。 shell 将继续等待您的输入 (y/n)。
过了一会儿(比默认 timestamp_timeout
,例如一小时),返回航站楼。按Y(假设您可以安装更新)。该操作将完成并安装更新。这是,sudo 权限仍然启用,比timestamp_timeout
.
为什么这种行为是可能的?这是 shell/系统安全中的漏洞吗?这不安全吗?这个设置可以修改吗?
答案1
sudo 用于以不同用户(fe root)身份运行程序。
安全策略可能支持凭证缓存,以允许用户在一段时间内再次运行 sudo 而无需身份验证。
如果您已经以不同的用户身份启动程序并且它正在运行,我认为不需要从运行的进程中剥夺提升的权限,因为它运行了很长时间。
缓存功能允许您在 5 分钟内多次运行 sudo,而不会提示输入密码,也不会在 5 分钟内以提升的权限运行命令。
在进程运行时甚至不可能更改进程的所有者。看这个线程以供参考。