• 进程pid和ppid、进程的uid和euid、用户的uid和gid、文件的创建者和所有者的关系辨析


    进程pid和ppid、进程的uid和euid、用户的uid和gid、文件的创建者和所有者的关系辨析


    1、当我们创建用户时,由我们为新建用户命名和设置密码,同时系统会为我们所创建的用户名关联一个号,就是所谓的用户uid。同时我们还可以把这个用户放到某个用户群里,类似的,用户群也可以我们手工建立。如果建立用户时,不指明所建的用户属于哪个用户群,则系统会自动建立一个跟用户名同名的用户群。不管手工建立还是自动建立,系统都会为用户群关联一个号,这个号称之为gid。用户uid所属的群的gid就是用户的gid。


    2、系统在运行每个进程时都会关联几个号,分别为pid、ppid、uid、euid。进程的pid为运行进程时,系统自动分配的,用于唯一标识此进程的一个整数。进程的ppid就是进程的父进程的pid。同时,系统还会为运行的进程分配一个进程uid和进程euid,用于判断文件的执行权限。一般情况下,进程uid和进程euid等于运行这个进程的用户uid。对于某文件,它的执行权限分成文件拥有者、文件拥有者同组、其他用户三组,从而分成三个级别。用户euid的作用就是于此。通过比较euid是属于文件的哪个组,从而决定属于文件执行权限的哪个级别,那么这个进程就拥有对该文件什么级别的执行权限。另外,如果可执行文件的setuid位有效,则运行这个可执行文件时,进程uid还是用户的uid,而进程euid则会暂时被修改成该可执行文件的所有者用户uid,直到该进程结束。一句话,在某个进程中,进程pid和ppid是唯一标识该进程的,它不会改变,而进程uid与运行该进程的用户uid相同,进程euid则与uid相同,只有运行设置了setuid位的文件时才会把euid改为这个文件的所有者用户uid。进程gid和进程egid则类似。


    文件的属性:
      15 14 13 12       11    10    9       8 7 6 5 4 3 2 1 0
       文件类型     setuid setgid sticky    R W X R W X R W X
    #define __S_IFMT 0170000  0开头表示是八进制,这个位决定了文件类型
    #define __S_IFDIR 0040000   目录文件
    #define __S_IFCHR 0020000   字符设备文件
    。。。。。。。
    #define S_IRUSR  文件的所有者可读
    #define S_IWUSR  文件的所有者可写
    #define S_IXUSR  文件的所有者可执行
    #define S_IRGRP  文件的所有者的同组用户可读
    #define S_IROTH  文件的其他用户可读

    在shell中执行ls -l命令,则会显示如下:
    drwxr-xr-x 2 root root 652 Jul 31 2006 /root/hello
    d表示文件,后面几个表示文件所有者、同组用户、其他用户的执行权限,文件数量,文件所有者,文件创建者(注意,RHEL这项是文件所有群),文件大小,日期,文件所在路径
    du -sh xxx可以测量xxx文件或目录所占内存大小。

  • 相关阅读:
    基础练习 分解质因数
    基础练习 矩阵乘法
    基础练习 矩形面积交
    基础练习 完美的代价
    设计模式完结(7)--桥接模式----处理多维度变化
    设计模式完结(6)--适配器模式----不兼容结构的协调
    设计模式完结(5)-建造者模式
    设计模式完结(4)-原型模式
    设计模式完结(3)单例模式
    设计模式读完总结(2)工厂模式
  • 原文地址:https://www.cnblogs.com/lidabo/p/16853627.html
Copyright © 2020-2023  润新知