UID:真实的用户ID   进程的UID就是其创建者的用户ID,用于标识进程的属主。

EUID:有效的用户ID

 

(1)只有进程的创建者和root用户才有权利对该进程进行操作。于是,记录一个进程的创建者(也就是属主)就显得非常必要。

(2)EUID,用来确定进程对某些资源和文件的访问权限。在大多数情况下,进程的UID和EUID是一样的 —— 除了著名的setuid程序。

(3)什么是setuid程序?  例如:passwd命令,这个命令允许用户修改自己的登录口令。但是密码保存在/etc/shadow文件中,这个文件对普通用户是不可读的,那么用户怎么能够通过修改shadow文件来修改自己的口令呢?这就是setuid的妙处了。

setuid通过使passwd在执行阶段具有文件所有者(也就是root)的权限,让用户临时有了修改shadow文件的能力(当然这种能力是受到限制的)。因此,passwd就是一个经典的setuid程序,其UID是当前执行这个命令的用户ID,而EUID则是root用户的ID(也就是0)

 

 

例子:

/usr/bin/passwd 这个可执行文件

linux 识别eml格式邮件文本方法 linux读取edid_linux

从上面passwd的属性可以看到,权限位中有个s,这就是suid

 

passwd这个命令是用来修改密码的,而密码文件是/etc/shadow,且查看密码文件的属性可以看到它的拥有者是root,root可读写,用户组可读的。

linux 识别eml格式邮件文本方法 linux读取edid_EUID_02

既然这个文件是root可读写,那非root用户修改密码要怎么办呢?

这时候就要说的suid了,当非root用户调用passwd修改密码时,此时的euid将会变为passwd的拥有者用户,即root用户,这样就可以修改密码了。

与其说suid是一个id,不如说它是文件的一个标志,它标志着这个可执行文件在执行时的euid将会被修改为它拥有者的uid。

参考:

 

 

linux 识别eml格式邮件文本方法 linux读取edid_EUID_03

 

 

linux 识别eml格式邮件文本方法 linux读取edid_linux_04

4代表r

2代表w

1代表x

linux 识别eml格式邮件文本方法 linux读取edid_linux 识别eml格式邮件文本方法_05

 

linux 识别eml格式邮件文本方法 linux读取edid_EUID_06

 

linux 识别eml格式邮件文本方法 linux读取edid_用户组_07

 

有点小迷糊?????

 

linux 识别eml格式邮件文本方法 linux读取edid_linux_08

 

ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。

Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。

如果要使用此命令,可以作如下修改:
打开 ~/.bashrc
找到 #alias ll=’ls -l’,去掉前面的#就可以了。(关闭原来的终端才能使命令生效)
这样个人用户可以使用ll命令,当切换成超级用户后,使用ll命令时提示找不到命令,那是因为你只是修改了个人用户的配置,所以,切换成root后做相同的操作即可解决问题。
启示:我们可以通过修改~/.bashrc添加任何其他的命令别名。

参考:

 

linux 识别eml格式邮件文本方法 linux读取edid_linux_09

 

 

linux 识别eml格式邮件文本方法 linux读取edid_linux_10

 

改变文件权限:chmod

牢记只有文件的属主和root用户才有权修改文件的权限。

chmod可以用于改变一个文件的权限。这个命令使用“用户组+/-权限”’的表述方式来增加/删除相应的权限。

具体来说,用户组包括了文件属主(u)、文件数组(g)、其他人(o)和所有人(a);

而权限则包括了读取(r)、写入(w)和执行(x)。          (执行:将文件装入内存并执行)(操作系统上看到的)

 

$chmod u+x days        增加属主对文件days的执行权限

$chmod a-x days         删除所有人(属主、数组和其他人)对days的执行权限   (a表示所有人)

$chmod 711 days        将文件days的所有权限赋予属主,而数组用户和其他人仅有执行权限

通过“用户组=权限”的规则直接设置文件权限

$chmod ug=rw,o=r  days  赋予属主和数组的读取/写入权限,而仅赋予其他用户读取权限

“用户组1=用户组2”,用于将用户组1的权限和用户组2的权限设为温泉相同

$chmod o=u days     将其他人的权限设置为和属主的权限一样

 

 

 

linux 识别eml格式邮件文本方法 linux读取edid_用户组_11

 

 

 

linux 识别eml格式邮件文本方法 linux读取edid_用户组_12

 

 

linux 识别eml格式邮件文本方法 linux读取edid_linux 识别eml格式邮件文本方法_13

 

linux 识别eml格式邮件文本方法 linux读取edid_linux_14

 

linux 识别eml格式邮件文本方法 linux读取edid_用户组_15

getuid()用来取得执行目前进程的用户识别码 函数返回一个调用程序的真实用户ID

 

上述图片参考老师上课课件