Lion终端在退出后会记住sudo密码


0

我自从发布以来就一直在使用Lion,今天我注意到,当我输入时,终端第一次没有提示我输入密码 sudo 命令,如果我 重开 终端在五分钟的窗口内,但等待超过五分钟后重新打开应用程序进入另一个 sudo 命令。

由于Lion的新“记住应用程序的状态”功能,它是否被缓存在某处?我可以关闭此设置吗?这似乎相当不安全。

我也试过用 命令 + 选项 + Q 组合,以及在退出应用程序之前退出终端,无济于事(也在五分钟超时窗口内)。

为了记录,我不记得在我更新到10.7.1之前看到这种行为,但我可能错了。

在我记录Apple的错误之前,有没有其他人可以为我复制这个并确认我的怀疑?


编辑 :显然我的问题不明确。我想知道这是正常的,还是一个bug:

  • 问题 sudo 命令。我被提示输入密码。

  • 关闭终端之前 sudo 超时生效(五分钟内)。

  • 再次打开终端,等待 超过五分钟 在发布之前 sudo 再次。

  • 问题 sudo 命令。我是 提示输入密码。

Answers:


6

这是正常的,也是这种方式的固有后果 sudo 处理其5分钟不需要重新认证的窗口。当您进行身份验证时 sudo,它记录你的 帐户 经过验证。由于身份验证与您的帐户相关联(不是终端会话或类似内容),因此如果您退出并且仍然有效,则该身份验证仍然有效。重新打开终端,注销&返回,甚至切换到不同的会话类型(例如,控制台登录与SSH会话与作为用户ID运行的cron作业等)。我不确定它是否能够在重启后幸存下来 - 如果没有,那是因为在系统启动过程中有一个步骤可以擦除时间戳文件。

顺便说一句,您可以使用清除自己的时间戳文件 sudo -K


这是这样的,因为至少我使用过OSX的第一个beta版本。
cftarnas

@cftarnas:甚至更长,因为OS X的实现 sudo 来自早期的unix,它以同样的方式工作。
Gordon Davisson

@Gordon:我会怀疑的!我最近使用的像RHEL这样的Linux发行版在每次调用时都需要密码,但这可能是我在过去10年左右才使用企业Linux发行版。
cftarnas

3

默认情况下, sudo 保留身份验证状态5分钟(这对Lion来说并不新鲜)。可以使用以下命令控制此默认超时 timestamp_timeout 设置 在/ etc / sudoers文件 (使用 visudo 编辑)。看到 man 5 sudoers 更多。

它也可以通过删除用户的时间戳目录来单独重置,例如, sudo rmdir /var/db/sudo/username

这与Lion中引入的应用程序状态功能无关(可控制通过 系统偏好设置 - >一般 - >退出并重新打开应用程序时还原窗口 )。


我不是在询问默认超时。我问的是,超时似乎停止到另一个是否正常 sudo 在打开终端后执行。

啊,我错过了那一部分。根据当前时间与时间戳目录(/ var / db / sudo / username)上的时间戳之间的差异,实际测量sudo运行时的超时。因此,除非你的时钟停止滴答,否则超时不应该暂停。但是当从同一个用户执行另一个sudo时它也会刷新,所以检查一下(通过监视timestamp目录,看看当你不自己使用sudo时是否刷新时间戳)。祝你好运狩猎:)
Ingmar Hupp

这就是我所看到的行为:它似乎暂停,只有在有人发出另一个行为时才会开始 sudo,无论是我还是其他用户。那么这是我或每个人的计算机上的错误吗?

在这里无法重现(Lion 10.7.1),似乎按预期工作:我跑 sudo ls,退出终端,等待6分钟 sudo 按预期再次要求输入密码。正如我所说,最可能的原因是另一个进程通过以同一用户身份运行sudo来刷新超时。要找出哪个进程,请运行 sudo fs_usage -wf filesys|grep /var/db/sudo (虽然没有在其他任何地方积极使用sudo)。
Ingmar Hupp

如果您在五分钟窗口内打开终端,然后在打开后等待六分钟,您可以重复此行为吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.