zoukankan      html  css  js  c++  java
  • 用户和组ID

    与进程相关的用户ID有四个:真实的、有效的、被保存的、文件系统的用户ID。

    1. 真实的ID是指启动进程的用户的ID。
    2. 有效用户ID是指正在运行的进程的用户ID。
    3. 被保存的ID是进程最初的有效用户ID。

    有效用户ID最重要,是确认进程凭证期间所检查的用户ID,真实ID和被保存的ID可作为替代品。root用户可以给uid提供任何值,但是普通用户只能提供真实ID或者被保存的用户ID。下面是和各种ID相关的方法,不详细:

    int main(){
    printf("uid:%d\n", (int)getuid());
    printf("pid:%d\n", (int)getpid());
    printf("sid:%d\n", (int)getsid(getpid()));

    return 0;
    }

    在制造守护进程的时候会用到这方面的东西,下面给出一个创建守护进程的例子:

    int main(){
    pid_t pid;
    int i ;
    pid = fork();
    if(pid == -1){
    return -1;
    }else if(pid != 0){
    exit(EXIT_SUCCESS);
    }

    //创建新的会话以及进程组
    if(setsid() == -1){
    return -1;
    }

    //将工作目录设置为根目录
    if(chdir("/") == -1){
    return -1;
    }

    //关闭打开的所有文件
    for(i = 0; i <= 2; i++)
    close(i);

    //将fd的0, 1, 2重定向到/dev/null
    open("/dev/null", O_RDWR);
    dup(0);
    dup(0);

    printf("123123123123");
    return 0;
    }
  • 相关阅读:
    23.课程应用接口
    22.课程页面设计
    21.手机接口
    20.云通讯
    19.JWT
    18.权限认证
    解决github下载慢的终极方法
    vs code 配置c/c++环境
    Python 字符编码处理总结
    Python编码
  • 原文地址:https://www.cnblogs.com/ggzwtj/p/2209682.html
Copyright © 2011-2022 走看看