我一直在用c++编写一个分叉pty的程序。除了一件事外,一切都进行得很顺利:当根用户运行程序时,pty以root用户的身份登录。同样,如果用户'x‘运行程序,新的pty将以'x’用户登录。它如何启动一个pty请求用户证书并登录?我知道ssh或pty1(ctr + alt + 1)是这样的。
编辑:这里就像我分叉了pty http://pastebin.com/3vLQynz2
发布于 2015-09-04 17:11:01
要允许以不同用户的身份运行某项操作,您必须更改为uid (man )。通常,您只能作为用户'root‘来执行此操作。
因此,如果您想实现这样的东西,那么您的程序必须以suid根的形式运行,或者您必须使用其他可执行的suid root。例如,您可以问用户它想成为哪个用户。然后运行/bin/su向用户询问他的密码。
顺便说一句:上述二进制/bin/login只有在您已经作为用户'root‘运行时才能工作。
https://stackoverflow.com/questions/32402480
复制相似问题