как выполнить su, чтобы стать пользователем root в оболочке дочернего процесса - PullRequest
0 голосов
/ 30 августа 2018

Я хочу проверить работоспособность пароля su. Я думаю о том, чтобы выполнить команду su, настроив дочерний процесс, затем ввести пароль и получить текущий UID, чтобы определить, равен ли он 0, но сейчас я не знаю, как подключить ввод-вывод. , Перейдите к сценарию, открытому дочерним процессом, есть ли способ подключения IO или другие методы для проверки безопасности пароля su, большое спасибо:)

int main(){

pid_t pid;
if((pid = fork()) < 0){
    printf("fock error!\n");
}
else if(pid == 0){// child 
    execl("/bin/sh", "-sh", (char*)0);
    //Execute su and input password to become root user, but I dont know how to pass the command to my shell
    exit(1);

}
else{ // parents
    waitpid(pid, NULL, 1);
    //get my child process exec ' result
}
...