root 接受任何密码:如何更改为真实密码?

root 接受任何密码:如何更改为真实密码?

我有一个旧的 Linux 系统,可以通过公共 IP 地址访问。

当您连接到 SSH 端口时,您可以使用任何密码以 root 身份登录。唯一的限制是密码长度至少为 1 个字符。

在(遥远的)过去,当开发此系统时,这是可以的,因为系统始终位于具有其自己的身份验证的拨号调制解调器后面。

几年以来,该系统通过 ADSL 连接并具有公共 IP 地址(无 VPN)......奇迹般地没有人关心 SSH 端口......直到上周......

上周一个中国IP地址通过SSH端口连接,用root账户登录,更改了一些系统设置(包括root密码),然后注销...我可以看到这个,/var/log/messages我可以通过另一个端口进行检索。

如何为root账户设置真正的密码?

我尝试使用passwd提供新密码的命令来设置它,但之后我仍然可以使用任何随机密码登录(重启之前和之后)

其中/etc/shadow关于 root 账户的内容如下:

root:8ZGWAPs9N9EJQ::::::

/etc/ssh/sshd_config看到以下行被注释掉了:

#PermitRootLogin yes

由于“是”是默认值,所以我认为这没有什么问题。

有关该系统的一些信息:

登录显示:

BusyBox v1.00-pre9 (2004.07.09-11:06+0000) Built-in shell (ash)

cat /proc/version得到:

Linux version 2.4.31 (<emailaddress>) (gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)) #4 Thu Sep 22 09:13:06 CEST 2005

我现在关闭了 ADSL 调制解调器防火墙中的 SSH 端口,因此无法再进行远程访问,这给了我一些时间来解决这个问题

我想给 root 账户一个真正的密码,该密码必须在任何 SSH 连接中使用,最好无需重置系统

我相信这是可能的,因为系统上周没有重新启动并且所有进程仍在运行,但我无法再使用任何密码登录 root 帐户。

[编辑]

正如 pingz 所怀疑的,这似乎是nullok/etc/pam.d/system-auth

是否可以编辑此文件并加载新设置而不必停止任何正在运行的进程?

节目的第一句台词/etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.

如果我现在nullok从这个文件中删除它,并且在将来的某个时候系统重新启动,它会nullok恢复吗,或者我的更改会保留吗?

答案1

有一种方法可以禁用用户密码,即 PAM 中的 nullok 模块。

查看此链接了解更多信息:

http://www.cyberciti.biz/tips/linux-or-unix-disable-null-passwords.html

如果是这种情况,只需更改这个奇怪的配置。

====================================================

对于您的其他问题,对 PAM 配置文件的任何更改都会立即生效,这可能会导致您被错误地锁定在系统之外。因此,RHEL 提供了 authconfig/authconfig-tui 工具来执行此操作,如注释所述。如果您运行它,它将为您重置配置。在运行它之前,请检查 authconfig 手册页。

相关内容