开始请求登录凭据



我一直在用c++编写一个程序。一切都很顺利,除了一件事:当根用户运行程序时,用户以根用户身份登录。同样,如果用户'x'运行该程序,则新用户将以'x'用户身份登录。它如何启动请求用户凭据和登录的程序?我知道SSH或pty1(ctrl + Alt + 1)可以。

编辑:这里就像我分叉的党http://pastebin.com/3vLQynz2

要允许以不同的用户运行某些东西,您必须有权更改为uid (man setuid)。通常情况下,你只能使用root用户来操作。

因此,如果你想实现类似这样的东西,要么你的程序必须以suid root身份运行,要么你必须使用其他suid root可执行文件。例如,您可以询问用户它想成为哪个用户。然后运行/bin/su请求用户输入密码。

BTW:提到的二进制/bin/login只会工作,如果你已经运行用户'root'

最新更新