简体   繁体   English

如何在C中删除linux上的root权限?

[英]How to drop root privileges on linux in C?

I'd like to fork and exec and program as a non root user while the parent retains root permissions. 我希望fork和exec并以非root用户身份编程,而父级保留root权限。

pseudo code: 伪代码:

  pid = fork();

  if (pid == 0) {
      if (RunAsUser(ConvertStringToUserId("John")) == false) {
          stop();
      }
      if (RunAsUser(ConvertStringToUserId("admin")) == true) {
          stop();
      }
      CreateProcess();
  }

如果要删除C代码中的权限,请使用setuid函数。

Get your program to invoke the child process as 让您的程序调用子进程

sudo -u user /path/to/externalprogram

instead of just 而不仅仅是

/path/to/externalprogram

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM