现在的位置: 首页 > 综合 > 正文

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

2012年11月16日 ⁄ 综合 ⁄ 共 1247字 ⁄ 字号 评论关闭

进程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文件或目录所占内存大小。

 

抱歉!评论已关闭.