向用户显示登录提示? /bin/登录?盖蒂?

向用户显示登录提示? /bin/登录?盖蒂?

我有一个服务,当用户通过套接字连接到它时执行命令,并将其接收到的所有内容重定向到执行的程序。

它可以与 bash 等 shell 配合使用,为用户提供远程 shell。

我不想分叉 bash 或 sh,而是想运行一些要求用户和密码的东西,例如/bin/login

这是正确的运行命令吗?非 root 服务是否可以使用任何东西来执行相同的操作?我认为getty调用/bin/login,但我可以以用户身份运行它吗?

我想我可以安装 telnetd 并重定向到,telnet localhost但我不想运行 telnet 服务器。

答案1

如何索取密码?

print $prompt
read $response

如果您想知道如何验证您的用户,最好将您的程序编写为支持 pam 的程序,并遵循 Interweb 上提供的所有 pam 开发人员指南之一。一个例子是http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_ADG.html。您还可以在系统上有一个可用于此目的的帮助程序,例如 unix_chkpwd,您可以在生成子进程并切换到目标用户后使用它。但 pam 应用程序开发人员界面非常简单,因此您自己进行身份验证可能是合理的。

相关内容