如何在C程序中运行 bash获得root权限?
How to run bash with root rights in C program?
我必须用 C 语言编写 运行 bash 具有 root 权限的程序。
我尝试使用 exec 执行此操作,但我不知道如何登录。这是个好主意吗?
int main() {
char *name[2];
name[0] = "bash";
name[1] = NULL;
execvp("/bin/bash", name);
}
您的可执行文件需要设置为 setuid-root 才能运行。
sudo chown root:root myprog
sudo chmod 4755 myprog
即使您这样做,如果只有有效用户 ID 是 root,shell 也可能不会给您 root 权限。您还需要设置真实用户 ID:
int main() {
char *name[2];
name[0] = "bash";
name[1] = NULL;
setuid(0); // sets the real user ID to 0 i.e. root
execvp("/bin/bash", name);
}
我必须用 C 语言编写 运行 bash 具有 root 权限的程序。 我尝试使用 exec 执行此操作,但我不知道如何登录。这是个好主意吗?
int main() {
char *name[2];
name[0] = "bash";
name[1] = NULL;
execvp("/bin/bash", name);
}
您的可执行文件需要设置为 setuid-root 才能运行。
sudo chown root:root myprog
sudo chmod 4755 myprog
即使您这样做,如果只有有效用户 ID 是 root,shell 也可能不会给您 root 权限。您还需要设置真实用户 ID:
int main() {
char *name[2];
name[0] = "bash";
name[1] = NULL;
setuid(0); // sets the real user ID to 0 i.e. root
execvp("/bin/bash", name);
}