Linux下的各种id

2023-05-16

分类




用户标识符:


几个典型进程的ID及其类型和功能




常见标识符的返回值


#include<sys/types.h>
#include<unistd.h>
pid_t getpid(void);		//返回调用进程的ID
pid_t getppid(void);		//返回调用进程的父进程ID
uid_t getuid(void);		//返回调用进程的实际用户ID
uid_t geteuid(void);		//返回调用进程的有效用户ID
pid_t getgid(void);		//返回调用进程的实际组ID
pid_t getegid(void);		//返回进程的有效组ID

总结:


(1)实际用户ID和实际用户组ID一般只是起标识作用;

(2)有效用户ID和有效用户组ID一般是与当前给定的文件权限有关系;

(3)通常情况下实际用户和有效用户ID值是相同的;


代码示例:




运行结果:




实际用户和有效用户的关系:


suid——设置用户ID

只能给拥有者的执行权限设置,凡是设置了用户id的人,执行该程序时都是以拥有者的执行者权限去运行

sgid——设置用户组ID

只能给拥有者的执行权限设置,凡是设置了用户id的人,执行该程序时都是以拥有者的所属组权限去运行


给文件加SUIDSGID的方法


chmod  u+s  filename 设置suid

chmod  u-s  filename 取消suid

chmod  g+s  filename 设置sgid

chmod  g-s  filename 去掉sgid

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下的各种id 的相关文章

随机推荐

  • ssh端口转发(之kettle ssh方式连接数据库)

    ssh参数解释 格式 ssh user 64 host command 选项 xff1a 1 xff1a 强制使用ssh协议版本1 xff1b 2 xff1a 强制使用ssh协议版本2 xff1b 4 xff1a 强制使用IPv4地址 xf
  • str库函数模拟实现

    常见str函数功能表 xff1a strcat 将字符串str2连接到str1之后 xff0c 并返回指针str1 strncat 将字符串from 中至多count个字符连接到字符串to中 xff0c 追加空值结束符 返回处理完成的字符串
  • min栈实现

    题目 xff1a 实现一个栈 xff0c 要求实现Push xff08 出栈 xff09 Pop xff08 入栈 xff09 Min xff08 返回最小值的操作 xff09 的时间复杂度为O 1 分析 xff1a 这道题目的主要难点在于
  • 栈实现队列&&队列实现栈

    背景知识 xff1a 动态栈的模拟实现 xff1a http blog csdn net double happiness article details 70170984 队列的模拟实现 xff1a http blog csdn net
  • 一个数组实现两个栈

    分析 xff1a 用一个数组实现两个栈有三种思路 xff1a xff08 1 xff09 将数组按照奇 偶为分成两组 xff08 2 xff09 将数组按照从两边到中间分成两组 xff08 3 xff09 将数组按照从中间到两边分成两组 比
  • 栈的压入弹出序列

    题目描述 xff1a 判断一个栈的输出序列是否是正确的 xff0c 时间复杂度要求O N 示例 xff1a 输入栈 xff1a 1 2 3 4 5 1 输出栈 xff1a 4 5 3 2 1 2 输出栈 xff1a 4 3 5 1 2 分析
  • list模拟实现

    双向链表代码实现 xff1a span style font size 24px pragma once 双向链表 template lt class T gt struct ListNode T data 当前节点中的数据 ListNod
  • C模拟实现静态顺序表

    头文件模块 xff1a span style font size 24px include lt iostream gt typedef int DATATYPE const int MAX 61 5 struct SeqList DATA
  • Mem库函数模拟实现

    本篇视图 xff1a 1 memset 2 memcpy 3 memmove 4 memcmp 5 memchr memset 功能 xff1a 将一段内存初始化为某个值 xff1b 函数拷贝ch 到buffer 从头开始的count 个字
  • Python15_布尔值_break_continue_pass_else

    布尔值 用数据做判断 xff1a 布尔值 计算机利用数据有三种方式 xff1a 1 直接使用数据 xff0c 2 计算和加工数据 xff0c 3 用数据做判断 布尔值 True和False 代码将会无限运行 xff0c 陷入 死循环 xff
  • atexit函数总结

    函数名 xff1a atexit 头文件 xff1a include lt stdlib h gt 函数原型 xff1a int atexit void func void 功能 xff1a 当程序终止执行时 xff0c 函数调用函数指针f
  • 递归问题的处理

    经典问题集锦 xff1a 1 猴子吃桃问题 2 小球落地问题 猴子吃桃问题描述 xff1a 从前有一群群猴从果园里采来了许多桃子 xff0c 第一天吃掉采来桃子的一半之后 xff0c 猴王又多吃了了一个 xff0c 第二天吃掉了剩下的一半之
  • 编程实现求一个整数的二进制中0和1的个数

    声明 xff1a 假定该数是在32位平台的机器上运行 xff0c 在更高或最低平台上的原理相同 核心最优算法 xff1a 求1的个数 xff1a num amp 61 num 43 1 求0的个数 xff1a num 61 num 43 1
  • C语言if语句中的零值比较

    目录 xff1a 布尔变量与零值比较 整型变量与零值比较 浮点变量与零值比较 指针变量与零值比较 布尔变量与零值比较 规则 xff1a 不可将布尔值直接与0 1或者true false比较 代码示例 xff1a span style fon
  • vs下的debug和release版本的区别

    vs下的版本分类 xff1a Debug版本 通常称为调试版本 xff0c 通过编译选项的配合 xff0c 编译的结果通常包含调试信息 xff0c 可以设置断点 单步调试 使用TRACE ASSERT等调试输出语句并且编译器不会对代码进行任
  • 二进制文件与文本文件的区别

    文本文件和二进制文件的定义 xff1a 计算机在物理内存上面存放的都是二进制 xff0c 所以文本文件和二进制文件的 主要 区别是在逻辑上 的而不是物理上的 而从文件的编码方式来看 xff0c 文件可以分为文本文件和二进制文件 文本文件是基
  • 浅析FILE和fd之间的关系

    背景知识 fd 文件描述符 FILE 文件指针 文件描述符fd fd只是一个整数 xff0c 在open时产生 起到一个索引的作用 xff0c 进程通过PCB中的文件描述符表找到该fd所指向的文件指针file 因此在Linux系统下面 xf
  • 面向过程与面向对象的区别与联系

    处理问题方面 面向过程 xff1a 分析解决问题所需要的步骤 xff0c 通过分别去实现对应的函数来完成每一个步骤 xff0c 使用的时候一次去调用对应的函数即可 xff1b 面向对象 xff1a 面向对象的是把所处理的问题先抽象起来 xf
  • fork与vfork创建进程的区别

    进程创建的方式 xff1a 1 fork函数 2 vfork函数 fork函数 头文件 xff1a include lt unistd h gt 函数原型 xff1a pid t fork void 返回值 xff1a 创建成功子进程返回0
  • Linux下的各种id

    分类 用户标识符 xff1a 几个典型进程的ID及其类型和功能 常见标识符的返回值 span style font size 18px include lt sys types h gt include lt unistd h gt pid