MLi*_*ter 3 password root sudo
由于某种原因,我在发出sudo some_cmd
.
即使我没有以 root 用户身份登录,输入的命令也会在不提示密码的情况下运行。尽管如此,仍然需要调用需要 root 权限的命令sudo
。我在 Ubuntu 10.04 上。
知道是什么原因造成的吗?
说sudo -K
,然后重试您的测试。如果它再次开始询问,发生的一切就是您已将sudo
密码配置为记住了一段时间。
最重要的是,Ubuntu 的默认sudo
配置使其能够记住您跨tty
s的凭据。ssh
正如您所发现的,这会影响会话,因为每个新ssh
连接看起来都像是低级操作系统代码的新终端。
这也会影响图形终端应用程序之类的东西。如果您使用 进行身份验证sudo
,然后使用 Ctrl-Shift-T 创建一个新选项卡,您会发现您无需sudo
在该选项卡中再次提供密码,尽管它还会创建一个新的tty
. 您甚至可以完全关闭终端应用程序,只要您在正常密码超时内重新启动它,它sudo
就会运行而无需您重新输入密码。此行为可能足以让您决定要保持启用此功能。
Mac OS X 现在也以这种方式工作。
并非所有 *ixes 都这样做。红帽企业 Linux(以及 CentOS 等衍生产品)坚持在每个新的tty
.
您可以通过将Defaults
行更改为以下内容来禁用这两种行为/etc/sudoers
:
Defaults=env_reset,timestamp_timeout=0,tty_tickets
Run Code Online (Sandbox Code Playgroud)
该env_reset
位应该已经存在,并且与此处无关
该timestamp_timeout
指令告诉它立即超时每个sudo
会话。这就像sudo -K
在每个正常sudo
命令之后说。
该tty_tickets
指令确保它将凭据与使用tty
它们的人相关联,而不仅仅是用户名。这应该已经是默认设置了,并且在 Ubuntu 上有这样的记录,但是sudo
为了上面给出的方便原因,他们必须构建他们的发行版来禁用这个选项。