我在 Linux Distro Openwrt 中有一个 Web 应用程序,我在其中使用 root 密码进行用户登录。通过调用系统命令更改root密码,我能够使用c中的cgi程序从“密码更改”html页面更改root密码。
system("(echo 'newpassword'; sleep 1; echo 'newpassword') | passwd root");
现在我面临的问题是,我不知道如何使登录页面正常工作..(如何使用root密码登录?我应该在那里使用什么样的cgi?或者我应该调用一个可能已经存在的脚本在openwrt中有吗?)。我在 /bin 文件夹中找到了一个脚本 login.sh,但那是一个登录脚本(下面给出的脚本)吗?
#!/bin/sh
if ( ! grep -qs '^root:[!x]\?:' /etc/shadow || \
! grep -qs '^root:[!x]\?:' /etc/passwd ) && \
[ -z "$FAILSAFE" ]
then
echo "Login failed."
exit 0
else
cat << EOF
=== IMPORTANT ============================
Use 'passwd' to set your login password
this will disable telnet and enable SSH
------------------------------------------
EOF
fi
exec /bin/ash --login
LuCI是怎么做到的?...
我希望这个问题很清楚。
谢谢。