• linux UID,GID,EUID,EGID,SUID,SGID快速理解


    一:linux UID,GID,EUID,EGID,SUID,SGID快速理解:
    1. UID/GID 实际用户ID和实际组ID,即登陆时候的用户名,比如我是lirobins登陆,那么UID/GID 为lirobins/lirobins
    2. EUID/EGID 有效的用户ID和有效的组ID,它们指定了访问目标的权限,SUID,SGID的设置(如setuid()函数或者chmod命令)会影响这个值。
    3. SUID/SGID 针对文件而讲述的概念,他可以修改当前进程的EUID/EGID

    二:UINX 权限为讲解:
    S G T R W X R W X R W X
    s - set user id enable
    g - set user group enble
    t - sticky

    主要讲解s/g enable
    实例:
    chmod 4777 file
    file文件的属性为rwsrwxrwx
    chmod 2777 file
    file文件属性为rwxrwsrwx

    三: 分析方法:
    对它们的使用就是要始终建立UID/GID/EGID/EUID的当前值是如何的
    实例1:
    1)有程序apps要执行,当前登录用户为lirobins,apps文件的ls -l 后的用户为lirobins,组为lirobins
    此时UID=lirobins,GID=lirobins,EUID=lirobins,EGID=lirobins
    2)现在apps程序要访问文件rong_file,rong_file 文件的ls -l后的用户为rong,组为home,按照当前现状,lirobins用户访问不了rong的
    3)如果apps源代码里面增加了如setuid/setgid()函数之后,诸如如下
      SUID 为rong的ID,那么此时apps程序(lirobins的进程),UID=lirobins,EUID=rong, GID=lirobins, EGID=liroibns,此时
      apps程序有了rong的权限,当然就可以访问rong_file了
    4)同理,如果apps程序(lirobins的进程),SGID设置了home,那么UID=lirobins,EUID=lirobins, GID=lirobins, EGID=home,此时
      apps程序也有了rong的权限,因为他们同组吗,当然就可以访问rong_file了
     
    实例2:
    1)有程序apps要执行,当前登录用户为lirobins,apps文件的ls -l 后的用户为root,组为root,mode为rwsr--r--
    此时UID=lirobins,GID=lirobins,EUID=root,EGID=lirobins
    2)此时lirobins可以执行apps程序了,如果apps文件变为rwxr--r-- root root, 那么lirobins用户但让不能访问apps文件,因为他没有root权限,

    实例3:这个例子有点绕,如果理解了实例1和实例2,小菜一碟

    UNIX系统有一个/dev/kmem的设备文件,是一个字符设备文件,里面存储了核心程序要访问的数据,包括用户的口令。所以这个文件不能给一般的用户读写,权限设为:cr--r----- 1 root system 2, 1 May 25 1998 kmem
    但ps等程序要读这个文件,而ps的权限设置如下:
    -r-xr-sr-x 1 bin system 59346 Apr 05 1998 ps

    这 是一个设置了SGID的程序,而ps的用户是bin,不是root,所以不能设置SUID来访问kmem,但大家注意了,bin和root都属于 system组,而且ps设置了SGID,一般用户执行ps,就会获得system组用户的权限,而文件kmem的同组用户的权限是可读,所以一般用户执 行ps就没问题了。

    四:总结,SUID/SGID就是向登陆用户提供了一种能访问文件的权限能力。

  • 相关阅读:
    UGUI组件之Slider组件简单笔记
    UGUI事件之Drag拖拽事件
    C#的数据类型之最常用的几种类型
    UGUI组件之Text文本组件简单笔记
    UGUI组件之Toggle 组件简单笔记
    Print 与Debug.Log的区别
    Unity脚本用VS打开出现 "以下文件中的行尾不一致,要将行尾标准化吗?"
    UGUI组件之Image 组件简单笔记
    UGUI事件之Pointer指针事件
    定制自己的Unity脚本模板
  • 原文地址:https://www.cnblogs.com/lcnewstart/p/2945638.html
Copyright © 2020-2023  润新知