为什么 Linux 允许 sudo -i 或 sudo su

为什么 Linux 允许 sudo -i 或 sudo su

我最近发现一个问题,显然您可以“绕过”知道根用户密码的需要,而直接以根用户身份切换。因此,如果您是管理员,您可以拥有一些具有 sudo 组级别权限的用户。如果不给他们 root 密码,他们将无法登录或切换到 root 用户(正常情况 ofc)。现在他们将需要输入 sudo 命令来执行任何 root 管理级别的命令或操作。但他们也可以只执行 sudo su 或 sudo -i 来切换到 root 用户,而无需知道 root 用户密码。现在我有两个大问题:

  1. 在我看来(如果我错了,请纠正我)——这对于安全来说是一个大问题,并且也违背了 Linux 结构的全部目的。因为现在他们作为root不需要知道root密码。
  2. 审核和日志记录 - 他们现在是 root 用户,如果不安装任何第三方审核系统或工具,则不会记录从用户 root 运行的那些行为或操作。

我想我的问题是为什么 Linux 允许这样做。对我来说,这似乎是一个作弊绕过代码。

如果我的担忧或观点有误,请纠正我。谢谢

答案1

命令的目的sudo允许非 root 用户以 root 身份运行命令,而不是防止他们从运行这些命令(特别是在系统上,你完全以root身份登录,就像Ubuntu一样)。因此,根据设计,sudo也允许以 root 身份运行 shell。

如果你想限制你的用户可以通过哪些命令运行sudo,你可以使用 file 来精确控制它/etc/sudoers。我建议您阅读该文件的文档 ( man sudoers)。

答案2

如果您是管理员,您可以拥有一些具有 sudo 组级别权限的用户

嗯,是。如果您是管理员,您可以成为管理员...

他们也可以只执行 sudo su 或 sudo -i 来切换到 root 用户,而无需知道 root 用户密码

是的,他们可以,如果他们已被明确授权通过在文件中添加适当的行来这样做sudoers。如果您不想允许用户以 root 身份运行命令,请不要允许他们通过 sudo 或其他方式访问 root 帐户。

现在他们作为 root 不需要知道 root 密码

是啊,那又怎样?向某人提供 root 密码是允许他们访问 root 帐户的一种方法。让某人成为 sudoer(即允许他们通过 root 身份运行任意命令sudo)是另一回事。

他们现在是 root 身份,并且在不安装任何第三方审核系统或工具的情况下,不会记录从用户 root 运行的那些行为或操作

是啊,那又怎样?成为 root 后可以关闭审核并删除日志。 (除了存储在远程计算机上的日志;那么,您最多可以保证日志将包含用户获得 root 访问权限的方式。)

如果您担心用户可以以 root 身份运行 shell,并且您希望他们“仅运行特定命令”: shell一个特定的命令。sudo -i是运行目标用户的默认 shell 的快捷方式:它相当于sudo bashor sudo shorsudo zsh或类似。如果您想阻止用户以 root 身份运行 shell,您sudo sh也需要进行阻止。和sudo perl。并且sudo vi(可以运行)。等等。或者他们可以写入可执行文件并使用.或者他们可以运行并编辑 sudoers 规则。没有办法允许用户运行几乎所有命令而只阻止其中一些命令。如果您授予某人 root 访问权限,他们就拥有 root 访问权限,您必须信任他们。如果您不信任他们,请不要授予他们 root 访问权限。![any shell command]eval "$(stdin)"sudosudo visudo

相关内容