我有一个可以通过公共IP地址访问的旧的Linux系统。
当您连接到SSH端口时,您可以使用任何密码以root身份login。 唯一的限制是密码至less需要1个字符。
在(远)过去,当这个系统被开发时,这是好的,因为系统总是在具有它自己的authentication的拨号调制解调器之后。
由于几年,该系统通过ADSL连接,并有一个公共IP地址(没有VPN)…奇迹般地没有人打扰SSH端口…直到上周…
上个星期,一个通过SSH端口连接的中国IP地址,使用root帐户login,更改了一些系统设置(包括root密码),并注销了…我可以在/var/log/messages看到这个通过另一个端口进行检索。
我怎样才能为root帐户设置一个真正的密码?
我尝试使用passwd命令给出一个新的密码,但在此之后,我仍然可以用任何随机密码login(重新启动之前和之后)
在/etc/shadow它说明有关root帐户的以下内容:
root:8ZGWAPs9N9EJQ::::::
在/etc/ssh/sshd_config我看到下面一行注释掉了:
#PermitRootLogin yes
因为“是”是默认值,所以我没有看到任何错误。
有关系统的一些信息:
login显示:
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
我现在closures了ADSL调制解调器防火墙中的SSH端口,所以不能远程访问,这给我一些时间来解决这个问题
我想给root帐户一个真正的密码,它必须与任何SSH连接一起使用,最好不用重置系统
我相信这是可能的,因为系统上周没有重新启动,所有进程仍在运行,但是我无法用任何密码login到root帐户。
[编辑]
因为pingz怀疑这似乎是由/etc/pam.d/system-auth nullok引起的
是否有可能编辑这个文件并加载新的设置,而不必停止任何正在运行的进程?
/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回来,或将我的变化保持?
有一种方法可以禁用PAM中的用户密码,nullok模块。
检查这个链接的更多信息:
http://www.cyberciti.biz/tips/linux-or-unix-disable-null-passwords.html
如果这是你的情况,只要改变这个奇怪的configuration。
================================================== ==
对于您的进一步问题,对PAMconfiguration文件的任何更改将立即生效,这可能会导致您错误地locking系统。 所以RHEL提供了authconfig / authconfig-tui工具来做这个注释。 如果你运行它,它将重置你的configuration。 检查authconfig手册页,然后再运行它。