初识linux权限之特殊权限

文件的特殊权限:

           大家应该记得在linux当中使用umask查看文件的反向掩码时它是四位的,为什么呢?听我慢慢道来...

[root@station21 ~]# umask

0022


大家应该知道并了解linux安全上下文的机制吧:

       进程访问文件时的权限匹配机制: 进程的发起者:进程属主  进程的属组:通常是进程属主的基本组, 如果一个进程想访问文件,首先去看一看这个进程的属主和文件的属主是不是一样,如果一样则应用属主权限.否则则检查进程的属主所属的主其中之一是否与文件的属组相同(包括附加组)如果有则应用属组权限,否则应用其它权限

       如果hadoop执行了: passwd命令,而passwd命令进程的属主:hadoop 属组:hadoop,他是否能够访问/etc/shadow这个文件?如果hadoop无法访问这个文件它又是如果能改密码的呢?

[root@station21 ~]# ls -l /etc/shadow        ---------- 1 root root 941 Feb 22 22:13 /etc/shadow

       可执行文件:suid

       任何用户执行此可执行文件时,不再以用户自己的身份当作进程的属主,而是以文件的属主当作进程的属主;所以任何人在执行这个命令都是以root的身份去执行,任何人权限对root用户都形同虚设,所以普通执行passwd命令对/etc/shadow进行更改是完全可以的

wKioL1MNjs_DPF6EAABR1mkRuuE492.jpg

  -rws:s:suid  suid表现为文件属主执行权限位上的s或S 如果此文件对该用户此前有执行权限就是 x: s 如果在此之前该用户对此文件没有执行权限的话就是: -: S

        如何设定suid权限:  chmod u+s FILE ... 或者:假设原来的权限是755 chmod 4755 FILE..

注释:我们使用root的用户身份到/bin目录下将cat命令cp到/tmp目录下

wKiom1MNlYvi70eYAABE7sofAk4585.jpg

注释我们使用root的用户身份到/etc目录下将passwd文件cp到/tmp目录下,然后将其权限改为600

wKioL1MNlWay_yynAABGo385PMA618.jpg

注释:切换到使用su命令切换到hadoop用户然后使用/tmp下的cat查看/tmp/passwd,发现权限不够

wKiom1MNlYzBCW6AAAA6RPor090528.jpg

注释:然后使用root的身份将可执行程序/tmp/下的cat加上suid    

wKioL1MNlWaidqQWAAAi7iuBZBQ126.jpg

注释:然后su到hadoop用户验证其效果

wKioL1MNlWeg232yAAG8oGQCOKM151.jpg

目录文件:sgid

具有sgid的目录,用户在此目录下创建文件时,新建文件的属组不再是用户所属的基本组,而是目录的属组; chmod g+s FILE ... 或者:假设原来的权限为755 chmod 2755 ... sgid表现为文件属组执行权限位上的s或S x: s -: S

注释:为了演示效果,我们将java用户以及hadoop用户的附属组添加其jdk

wKioL1MNoNLgXYI_AABJHkUzLds993.jpg

注释:为先演示效果,我们先将指定目录的组权限添加为w权限然后将其目录的宿组改为JDK

wKiom1MNoBvQe0WBAAA8ppUr108054.jpg注释:我们在没更改sgid之前用户在此目录创建的文件都属于自己的基本组

wKiom1MNoBzQDOUIAABYAvloZfI720.jpg

注释:我们将其为此目录添加sgid

wKiom1MNoBzznB3kAAAkZuXBg4U072.jpg

注释:在此之后创建的文件都属于目录的属组

wKioL1MNn_bCOfO2AACJsC1usjM997.jpgwKioL1MNn_fS5k4LAAB8CyUp6xM844.jpg

注释:更改sgid之后,我们使用hadoop用户更改java用户的文件是允许的

wKiom1MNoB3w2o6aAAA9WLEXHaI334.jpg

wKioL1MNn_eCZy2IAADXbyYLzqk682.jpg

注释:更爱sgid之后,我们使用java用户删除hadoop的文件也是被允许的!

wKiom1MNoB2y-ULZAAB2Bew89Aw672.jpg

注释:更改sgid之后属组权限那一行x权限为s

wKioL1MNn_jQg3gCAABLRKgHW6E047.jpg


粘滞位:sticky

对于公共可写的目录,用户可创建文件,可以删除自己的文件,但无法删除别的用户的文件 chmod o+t FILE ... 或者:假设原来的权限为755chmod 1755 FILE ... sticky表示为文件其它用户执行权限位上的t或T: x: t -: T 其实粘滞位是对sgid能力的补充,我们来看一看!

注释:将其之前测试的目录添加sticky,更改之后其为蓝色

wKiom1MNpPTjmMvXAAB4kO1DbH0345.jpg

注释:然后使用其hadoop用户更改java用户的文件,还是可以改呀,那我们看还能不能删除其文件,删除文件时不允许的。,看来sticky这种方式的限制只能防君子,不能防小人呀

wKioL1MNpM-g5u7hAACbRKxX1Uw114.jpg

wKiom1MNpPXCjUj1AABNJXS4x7o507.jpg



你可能感兴趣的:(linux,用户,执行文件)