sudo命令尝试搜索主机名

prathmesh.kallurkar

最近,我通过/ etc / hostname更改了sudoers文件和主机名。更改此文件后,我的sudo命令将花费大量时间。另外,它说sudo无法解析主机kaagini(我的机器的主机名)。

sudo为什么必须知道用于提供对某些内容的权限的主机名?

我的sudoers文件有一个命令“ Defaults env_reset”。我看到了一些类似的问题,但是这里的上下文不是远程登录。该错误显示在本地主机上。

最初对该问题进行谷歌搜索表明/ etc / hosts文件必须具有127.0.0.1的实际主机名。这解决了我的问题。但是我的实际问题是:为什么我们需要sudo?sudo是否应工作,而不管登录的位置如何。

保罗

/etc/sudoers文件旨在能够在多个服务器之间分发。为了做到这一点,文件中的每个许可都有一个主机部分。

通常将ALL=设置为意味着该权限对任何服务器均有效,但是可以将其设置为特定主机:

%sudo    kaagini=(ALL) ALL

为了使sudo知道是否应应用此规则,它需要查找正在其上运行的主机。它使用依赖于/etc/hosts正确性的调用,这就是为什么错误调用失败的原因。

可能会争辩说,sudo如果将主机部分设置ALL=为所有权限,则无需费心进行名称查找,但是那样行不通-在处理规则之前,它似乎可以确定运行位置。

这确实是为了简化维护,因为sudo只能读取/ etc / sudoers来查看用户可以在当前计算机上执行的操作。但是,作为具有100台服务器的管理员,这可能需要100个不同的/ etc / sudoers文件进行维护。由于sudoers的权限中包含主机部分,因此您可以维护一个sudoers文件并将其分发到所有计算机,但仍可以精确地了解用户在每台计算机上可以执行的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章