我用 C 语言编写了一个在浏览器中运行的 cgi-bin 应用程序,它允许用户在 Linux 机器上打开交互式 shell 并查看和编辑文件。它作为标准的 apache“www-data”用户运行。我只是在其中添加了一个登录屏幕,用户在其中输入他们的姓名和密码(在表单中),但我无法使用getpnam对用户进行身份验证,因为此功能仅在以 root 身份运行时才有效。
当不以 root 身份运行时,我必须检查用户的登录凭据有哪些选项?
PS:在我的交互式 shell 中,我可以键入“su root”,然后输入我的密码,它确实提升到 root 权限,因此显然可以交互完成。