该sudo
命令会暂时记住我输入的密码,这样我就不需要每次都重新输入。我知道我可以使用删除这个“会话” sudo -k
。
现在,如果我通过 ssh 登录,使用 sudo,然后注销而不运行sudo -k
.在 sudo 密码重新输入超时之前获得我帐户访问权限的人是否可以在不输入密码的情况下使用 sudo?我知道当你打开一个新的 ssh 会话时它不起作用,大概是因为它使用了不同的伪终端,但可能有不同的方法。
如果可能的话,我能做什么呢?
答案1
一般来说,是的,如果您注销而其他人登录,则可以重用 sudo 会话作为你在同一终端上。正如您在文档中发现的那样, sudo 有时会检测并拒绝这一点,但并非总是如此。
如果有人以你的身份登录,那么游戏就几乎失败了。他们可以在您的帐户上植入后门,在最坏的情况下,攻击者会窃取您的密码,并在您下次使用 sudo 时利用您的 sudo 访问权限。那么“我能做些什么来对抗它呢?”的答案是这样的。是“没什么”,更重要的是“我该怎么办?”的答案。没什么”。它不会使任何威胁变得更糟。
答案2
至少在 Linux 和 OS X 系统上,缓存的时间戳在注销后将无法保存。
答案就在man sudoers
,而不是在man sudo
,这就是为什么我一开始没有找到它:
由于时间戳文件存在于文件系统中,因此它们的寿命可能比用户的登录会话还要长。因此,只要时间戳文件的修改时间在 5 分钟内(或者设置了任何超时),用户就可以登录、在身份验证后使用 sudo 运行命令、注销、再次登录以及在不进行身份验证的情况下运行 sudo到 sudoers 中)。当启用 tty_tickets 选项时,时间戳具有每个 tty 的粒度,但仍然可能比用户会话的寿命更长。在使用 devpts 文件系统的 Linux 系统、具有设备文件系统的 Solaris 系统以及使用 devfs 文件系统(在创建设备时单调增加设备 inode 数量)的其他系统(例如 Mac OS X)上,sudoers 能够确定基于 tty 的时间戳文件何时过时并将忽略它。管理员不应依赖此功能,因为它并非普遍可用。
答案3
sudo
记住每个终端会话的密码。如果您注销(因为您自己注销或您的会话由于某种原因终止),则没有问题。
唯一的问题可能是screen
您使用的会话sudo
。
但如果您担心出现任何问题,您可以简单地配置sudo
为不缓存密码。