我当了几年 Linux 管理员,我知道当我使用实时系统重新启动系统并挂载 / 或 /etc(取决于目录分布)时,我可以更改 root 的密码。我现在遇到了一个更大的问题。
我认为在使用 VI 时出现了问题,/etc/passwd 的第一行将第一个字母改为大写字母。所以现在 root 变成了 Root。有什么方法可以以普通用户身份更改此设置吗?
它运行在 Cisco 服务器上,我甚至可以通过 iLO 和 KVM 交换机访问系统。因此,有办法进入系统。但这是一个 24/7 系统,所以我无法关闭服务器。
我将非常感激您能提供的任何帮助。谢谢。
答案1
/etc/passwd
UID 0 不被称为“root”并不意味着您已被锁定。这是我手动编辑并/etc/shadow
以 root 的新名称重新登录后的系统:
SuperUser@sf:~# id
uid=0(SuperUser) gid=0(Root) groups=0(Root)
使用包含实际哈希密码的拼写/etc/shadow
。但是,只有 root 可以读取此文件。如果您只将 passwd 更改为“Root”,则可能需要“root”。
您不能以普通用户的身份编辑密码,这会破坏其安全性。用户可以冒充他们想要的任何人,包括成为 uid 0。
您不需要文本编辑器即可在本地文件中更改用户。请参阅usermod
shadow-utils 的手册页和相关命令。
操作系统管理员应该有某种方式从其通常的个人用户变为 root 用户。例如sudo
规则或已知密码。如果您要更改 root 的登录名,则您是操作系统管理员。
您总是需要一个维护窗口来应对系统停机。如果没有其他问题,安全补丁就是最好的选择。因此,如果您仍然无法进入,请安排一个时间来修复此问题,即使要等到几个月后。
答案2
您是否没有sudoer
可以访问的系统?如果没有,您需要在系统上找到漏洞。也许是 root 的 cron 执行的某些内容,而您的用户可以写入。检查/var/spool/cron/root
是否有任何适用内容。
接下来是查找任何存在漏洞的服务。以此方式运行的程序root
将允许您执行任意命令或自动执行可写脚本/程序。
接下来,查找具有setuid()
适用粘着位设置的程序,看看是否有可以利用的东西。
如果它是一个“开箱即用”的系统,那么你很可能遇到麻烦,需要关闭电脑,将驱动器作为从属设备安装在另一台 Linux 主机上,然后从那里修改文件。
祝你好运!
答案3
我希望你从未遇到过这种情况,这真的很糟糕!如果没有配置 sudoers 并且无法执行重新启动,我认为没有太多解决方案。
抱歉,我坐在这里思考了很长时间如何才能解决这个问题,但我担心如果用户不能从该系统提升到 uid 0(sudo)或通过运行实时系统以 uid 0 物理访问数据,就什么也做不了。