权限
思维导图:权限 - 幕布
一、为什么要使用权限(权限的作用)?
1.权限是为了保证程序的有效运行,以及在一定的范围内是用户的隐私得到保证
2.root对普通用户所进行的限制,主要用于约束用户能对系统所做的操作,以及限制其访问的内容和范围,换句话说,权限是指某个特定的用户具有特定的使用权利。
二、权限分类及作用?
1)用户与权限的关系:
Linux中的文件或目录的权限和用户及用户组关联很大,Linux中每个文件或目录都有一组共9个基础权限位,每三个字符被分为一组,他们分别是拥有者权限、拥有组权限、其他用户权限。
2)权限分类;
rwx权限对应二进制的值:r=4,w=2,x=1。
r:读取权限(read)
w:写权限(write)
x:执行权限(execute)
通过简单的组合相加,得到以下几种权限:
0:没有权限;
4:读取权限;
5:读取+执行;
6:读取+写入;
7:读取+写入+执行。
三、特殊权限:
1.特殊权限分为三个 :
1)SUID
2)SGID
3)SBIT
除了rwx权限外,在Linux中还有三种特殊权限:SUID,SGID,SBIT
2.SUID,SGID,SBIT介绍
1)特殊权限suid
suid是让普通用户可以,以root或其他的用户角色运行只有root或其他账号才能运行的命令或程序,或程序命令对应本来没有权限操作的文件等,suid为某一个命令设置特殊权限,使用者为所有人。
注意:suid仅对命令行有效不能运用在shell脚本
2)特殊权限sgid
作用:基本使用方法都和SUID一样,只是SGID是与所属用户组相关的,sgid既可以针对文件也可以针对目录
执行命令的用户可以获得该程序执行期间所属组的权限,suid是拥有这个用户的权限
3)特殊权限sbit(Sticky Bit 粘滞位)
作用: 粘滞位就是你可以往里面放内容但是却不能对这个文件进行操作
举例最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件
4)为什么要使用特殊权限:
举个例子,比如 /usr/bin/passwd 这个命令。
它的权限是 -rwsr-xr-x ,我不是所有者,我具有"x"权限,当执行它时,获得了它的所有者(即root)的权限,
所以在该二进制程序执行时,我可以用它来读到我平时是没有权限访问的 /etc/shadow 文件(-r--------),从而能更改密码
四、修改SUID,SGID,SBIT权限
1.符号类型修改权限:
chmod u+s test --为test文件加上suid权限
chmod g+s test --为test文件加上sgid权限
chmod o+t test --为test文件加上sbit权限
2.数字类型修改权限:
我们知道普通文件的rwx权限修改
对于特殊权限,需要在最前面增加一位,SUID:4,SGID:2,SBIT:1
chmod 4777 test --test拥有SUID权限,rwsrwxrwx
chmod 2777 test --test拥有SGID权限,rwxrwsrwx
chmod 1777 test --test拥有SBIT权限,rwxrwxrwt
由思维导图呈现如下: