发现 sudo 机制的一个缺陷

一般的机器只有管理员才能设定时间。Ubuntu 的机器有 sudo 权限的用户可以使用 sudo 来获得管理员权限。

如果机器时间不对,可以通过 sudo ntpdate

sudo 本身有一个时间戳,一段时间内不必再次输入密码。如果这个时间戳的时间是未来的时间,那么会 sudo 会认为有诈,从而拒绝执行 sudo 的命令。

问题就来了:如果一个机器时间快了很多,通过设置时间的命令往回调后,sudo 就用不了了。只能 (1)重启,或者 (2)让其他管理员用户修改时间戳,或者 (3)等到时间戳过期之后再使用。

Ubuntu 默认是把系统时间当作 UTC 基准的,这一点与 Windows 不同。如果要重装一遍系统,经常遇到时间不是快 8 个小时就是慢 8 个小时的现象。如果碰上快8个小时的情况,在系统中重设时间后,将有8个小时左右不能再用 sudo。

这真是一个棘手的问题。如果是服务器,重启一次是很麻烦的。

2 Comments »

  1. skh Said,

    June 12, 2007 @ 11:17 pm

    sigh.. 我今天就遭遇了一次
    一不小心把时间该到了两个小时后,然后改回来 就没法sudo了 -____-


    Yeye@zzxy

  2. kxn Said,

    January 16, 2008 @ 4:49 pm

    ntpd, ntpd, ntpd!

    让时间一点一点蹭过去, 比一下子死亡疗法过去, 要好很多.

RSS feed for comments on this post · TrackBack URI

Leave a Comment