你如何重命名root?

yxk*_*xkb 29 root

并不是说改变它是一个很好的主意,而是为了好玩。根据这个帖子,还存在一些问题,即使是在不断变化的条目后/etc/passwd/etc/shadow/etc/sudoers。有什么建议?

Sha*_*dur 30

从理论上讲,改变它/etc/passwd/etc/shadow将所有你需要“重命名”根。出现这个问题是因为几乎所有现存的 Unix 软件都假设用户名“root”存在并且它是超级用户——邮件别名、各种守护进程、cron……

如果您真的一心想要尝试它,find /etc -type f -exec grep -l root {} +那么查找您可能需要更改的每个配置文件的列表应该是一个良好的开端 - 但就像您已经说过的那样,几乎在所有可以想象的情况下,这都是一个非常糟糕的主意。

编辑另一个想法——如果你还没有(你应该有),确保/etc/aliases包含一个条目root和一个存在的用户名或一个正确评估的电子邮件地址。许多自动化系统范围的任务(cron例如)通过电子邮件将其输出发送到root,传统上将其别名为负责该系统操作的系统管理员。

  • 是吗?我认为大多数应用程序都使用 UID 而不是名称。我认为理想情况下,没有应用程序应该假设“root = UID 0” (3认同)
  • /etc/group 也有用户名... (2认同)
  • @yxkb:您是对的,没有应用程序 ** 应该** 假设。但我真的很想为每个应用程序或脚本收到 1 美元!:) (2认同)
  • 的确。让我们回想一下,我们都曾亲自在 shell 脚本中编写过 `chown root ...` 或类似的代码。 (2认同)

5mi*_*1er 22

所有这些都在散播恐惧,说“不要这样做!” 很可笑。有一次,是的,它可能确实破坏了许多写得很糟糕的脚本,但我怀疑这些脚本不再那么常见了;至少不是在标准发行版中。

我们被告知要重命名一部分 linux 服务器上的 root 帐户。因此,在尝试研究如何正确执行此操作后,我发现很多帖子都说“不要这样做!” 如果你选择这样做,会有很多关于“坏事”发生的可怕警告。但是,我还没有找到任何可能发生的“坏事”的具体例子。

所以,让我备份并解释我在哪里,以及我们是如何到达这里的。我们正在构建一个符合 PCI 的环境,帮助我们满足这些“要求”的工具之一是告诉我们需要将 root、管理员和来宾帐户重命名为其他名称。对于那些未受过 PCI 教育的人,您可以选择遵循指南或记录您不能或选择不遵循该指南的原因,以及您必须采取哪些缓解策略来确保系统安全。所以,我想大多数地方都记录了为什么他们不打算重命名他们的 root 帐户,但是,我们的小组已经决定,如果我们可以毫无问题地重命名 windows 管理员帐户,那么也将重命名 linux root 帐户。

我精通“通过默默无闻的安全”论点;我知道只是更改 root 帐户名称实际上并不能提高很多安全性,应该在 SSH 中禁用 root,等等。我知道,这不是重点,我不想听到更多。我也对更多“天会塌下来”的警告不感兴趣。我正在寻找这样的语句:">这个坏事<会发生在>这个标准包<(除非你>做这个<)”。

到目前为止,我有 3 个 CentOS (RHEL) 系统,它们在重命名 root 帐户方面显然没有问题。这是我所做的:我更改了 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 中的帐户名称。然后在 /etc/ 中搜索名称 root 并修改后缀别名文件,以便 root 是我们新帐户名称的别名,称为 rojotoro。(其他电子邮件系统应该做类似的事情)。我还发现在描述谁应该拥有它会自动创建的文件时,我需要更改 logrotate 的一些配置。到目前为止,这就是我改变的全部。

我看过很多 init.d 脚本,但没有改变任何东西,一切似乎在启动时都很好。我必须在使用 sudo 时指定新帐户:以“sudo -u rojotoro vim /etc/passwd”为例,但实际上我不需要更改 sudoers 文件中的任何内容。我预计 selinux 可能会出现一些问题,我们已经启用并强制执行,但到目前为止,我还不需要接触该系统。

我还可以看到 mkdev 或 mkfs 脚本可能需要调整,但我不打算使用它们,所以我没有仔细检查它们。

如果在启用了 selinux 的系统上确实如此容易更改且不会产生不良影响,那么为什么还要继续散播恐惧呢?

  • 如果你删掉几段专门说人们无知的段落,这将是一个更好的答案;真的没有必要 (14认同)
  • 你是对的,但我花了一段时间才承认。它的目的是帮助确保其他人在抨击这个想法之前拥有更改 root 用户名的实际经验,但实际上并没有必要。 (3认同)
  • 既然你在 CentOS 上:你能检查一下 root 帐户被重命名的系统上的 `rpm -Va` 怎么说吗?根据 [最大 RPM 指南](http://www.rpm.org/max-rpm-snapshot/s1-rpm-specref-files-list-directives.html)“用户和组标识符必须是非数字的”所以任何指定文件必须由 root 拥有的 RPM 在安装时将无法做到这一点。只是想知道您的系统将如何处理。 (3认同)
  • PCI 中的哪个位置说您需要重命名 ROOT? (2认同)

小智 7

建议:不要那样做。

一些工具尝试通过 uid 与 root 对话,在那里你应该没有问题。一些工具假设您的 root 帐户被称为 root,并且会中断。除非你准备好,比如“为了好玩”重新编译你的一半系统,否则不要尝试。

  • 我认为没有人会质疑重命名 root 充其量是一个非常糟糕的主意。 (2认同)

fro*_*boo 5

在我看来,最简单的方法是创建一个新用户(别名),其 UID 为 0,/root作为 home。

为什么不将 root 的默认 shell 切换到/bin/falseor /sbin/nologin(这样没有人可以登录它,但系统仍然使用它)并登录到创建的新别名?

razvan@naboo ~ $ head -2 /etc/passwd
root:x:0:0:root:/root:/bin/nologin
root2:x:0:0:root:/root:/bin/bash
razvan@naboo ~ $ su -
Password:
su: Authentication failure
razvan@naboo ~ $ su root2
Password:
naboo razvan # whoami
root
Run Code Online (Sandbox Code Playgroud)

如果将root 的shell 改为nologin,则sudo、mail 或ftw 不会损坏。