我在Linux Distro Openwrt中有一个Web应用程序,我正在使用root用户密码登录。我可以通过调用system命令来更改root密码,使用c中的cgi程序从“密码更改”html页面更改root密码。如何在Linux Distro Openwrt中根据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这样做?..
我希望这个问题是清楚的。
谢谢。
或许你应该使用PAM(可插拔认证模块) 它会检查可以使用用于任何服务或应用程序的操作系统的用户凭据 – Ashish