我最近更改了 sudo 密码超时时间(即 sudo 再次询问您密码之前经过的时间)。默认为 15 分钟;我使用sudo visudo
和 更改将其增加到 1 小时Defaults env_reset,timestamp_timeout=60
。但是,您可以通过将其设置为 -1 来使 sudo 不再询问密码。
虽然我觉得每个管理员都会告诉我这是个坏主意,但我想知道具体的安全风险是什么。如果有人以我的身份登录,他们不是已经知道我的密码了吗?非无限密码超时可以保护我免受哪些特定情况的影响?
我的 Ubuntu 机器运行一个向公众开放的网络服务器。
答案1
sudo 超时仅适用于当前 shell 会话。尝试以下操作:
- 打开终端
- 运行
sudo ls
。系统将要求你输入密码 - 再次运行
sudo ls
。由于超时尚未到期,因此不会要求您输入密码 - 打开另一个终端窗口
- 在新终端中运行
sudo ls
。即使第一个会话的超时时间尚未到期,系统也会要求您输入密码。
sudo 长时间超时的最大风险是,如果您使用 sudo 然后去喝咖啡,有人可能会在您不在时重复使用您的 sudo 功能。
答案2
这个问题很老了,但我认为接受的答案缺少一个重要的考虑。根据您的使用情况,除以下情况外,sudo 超时0
可能会很危险:
假设您使用 键入命令sudo
。然后有时稍后,您会使用软件包管理器(例如 Python 的 Pip 或 Node 的 NPM)为您的项目安装新软件或依赖项。好吧,如果您的sudo
超时尚未到期,那么这些软件包中的任何内容都将能够以 的身份执行命令sudo
。
从互联网上粘贴的代码也可能会发生这种情况,如下所示: https://martin-ueding.de/posts/the-dangers-of-sudo-timeout/