当前位置: 首页 > news >正文

关于 Linux 进程的 UID、EUID、GID 和 EGID

UID、EUID、GID 和 EGID 简介

  • UID 真实用户ID
  • EUID 有效用户ID
  • GID 真实组ID
  • EGID 有效组ID

  用户信息对于服务器程序的安全性来说是很重要的,比如大部分服务器就必须以 root 身份启动,但不能以 root 身份运行。一个进程拥有两个用户ID:UID 和 EUID。EUID存在的目的是方便资源访问:他使得运行程序的用户拥有该程序的有效用户权限。
  比如 su 程序,任何用户都可以使用它来修改自己的账户信息,但修改账户时 su 程序不得不访问 /etc/passwd 文件,而访问该文件是需要 root 权限的。那么以普通用户身份启动的 su 程序如何能访问 /etc/passwd 文件呢?窍门就在 EUID。用 ls 命令可以查看到,su 程序的所有者是 root,并且它被设置了 set-user-id 标志。
图片描述

  这个标志表示,任何普通用户运行 su 程序时,其有效用户就是该程序的所有者。那么,根据有效用户的含义,任何运行 su 程序的普通用户都能访问 /etc/passwd 文件。有效用户为 root 进程称为特权进程(privileged processes)。EGID 的含义与 EUID 类似:给运行目标程序的组用户提供有效组的权限。

设置方法

  chmod u+s filename 设置SUID位

  chmod u-s filename 去掉SUID设置

  chmod g+s filename 设置SGID位

  chmod g-s filename 去掉SGID设置

相关文章:

  • 浪漫纯白记录爱的轨迹 西部数据移动存储“七夕”献礼
  • 六大存储技术或将敲响硬盘丧钟
  • 软银创下新纪录:930亿美元投资技术初创企业
  • Intel 160GB 2.5寸固态硬盘高价上市
  • 某系统由于struct2漏洞导致被完全攻陷
  • 定位与大数据邂逅,Wi-Fi大不相同
  • ioc(di) 前世今生
  • 类A是公共的,应在名为A.java的文件中声明错误
  • Oracle约束的状态及验证机制
  • jsp 静态包含 和 动态包含
  • 整合ssh的时候出现空指针java.lang.NullPointerException
  • Android -- 自定义view实现keep欢迎页倒计时效果
  • mysql 100%占用的解决
  • 天天爱跑步NOIP
  • 白话经典之String字符串详解
  • 【Linux系统编程】快速查找errno错误码信息
  • Cookie 在前端中的实践
  • JavaScript类型识别
  • JavaScript异步流程控制的前世今生
  • MySQL用户中的%到底包不包括localhost?
  • Spark RDD学习: aggregate函数
  • Vue 重置组件到初始状态
  • zookeeper系列(七)实战分布式命名服务
  • 大主子表关联的性能优化方法
  • 关于List、List?、ListObject的区别
  • 记录:CentOS7.2配置LNMP环境记录
  • 开发基于以太坊智能合约的DApp
  • 两列自适应布局方案整理
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端存储 - localStorage
  • 强力优化Rancher k8s中国区的使用体验
  • 微信支付JSAPI,实测!终极方案
  • 智能合约Solidity教程-事件和日志(一)
  • raise 与 raise ... from 的区别
  • #define
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (4.10~4.16)
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (七)c52学习之旅-中断
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .chm格式文件如何阅读
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 分布式技术比较
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NetCore项目nginx发布
  • .net连接oracle数据库
  • .sys文件乱码_python vscode输出乱码