文章目录:
序言
生活中处处都存在着权限,例如新村的门禁、朋友圈的访问、景区的套票步入等等都是权限。Linux中其实也存在权限,用于愈发规范的管理这一平台,下边就让我来介绍一下Linux权限的理解与学习吧
1.shell理解
shell是包裹在Linux内核kernel之外的内层壳,又称为Linux壳体,shell是系统的用户界面,提供了用户与内核进行交互操作的一种插口,是在Linux内核与用户之间的类库程序,它接收用户输入的命令并把它送入内核去执行
操作系统、shell和用户的关系图示:
里面是比较具象的概念,下边我来举一个浅显易懂的事例便捷你们理解:
情况一:张三托王婆去帮他说媒,王婆派出师父去办事,小美欣然同意,事儿成了
情况二:张三托王婆去帮他说媒,然而此时翠花早已和李四在一起了linux赋予用户写权限,翠花拒绝了此事
情况三:张三托王婆去帮他说媒,然而此时翠花早已和李四在一起了,张三因为特别喜欢翠花,于是找到了他的镇长老爹帮忙,在“钞能力”的作用下李四和翠花被拆散,最终还是选择了张三
在前面这个情境中,张三就是用户,镇长就是超级用户root,翠花就是操作系统,是用户的操作对象,李四是可能存在的权限限制,王婆则就是shelllinux赋予用户写权限,她的师父就是执行命令时创建的子进程
里面的三种场景则分别对应着:
权限足够、权限不足、超级用户(root)下权限无阻
总结:
Linux下,用户是通过shell壳体来与操作系统进行交互的,shell会创建子进程来进行命令行的传递和结果返回,在CentOS中,bash就是命令行类库程序,也是个文件,归于shell
shell的作用:
1.帮忙进行命令行传递和返回结果
2.保护操作系统(避免危险指令对操作系统导致破坏)
3.执行命令时创建子进程执行
2.Linux权限的概念
权限是拿来限制人的,由于事物可能天然缺位某种属性,所以权限就是一件事是否能做
Linux下权限=人+事物属性
3.Linux权限管理3.1用户分类
Linux下有两种用户:超级用户(root)、普通用户
超级用户:可以再Linux系统下做任何事情,不受限制
普通用户:在Linux下做有限的事情
3.2用户切换
Linux下支持用户之间的切换
句型:su[选项][用户名]
常见选项:-root切换至超级用户的家目录下,并显示近来登陆的信息,这儿省略-root也可以切换到root用户下
4.文件权限4.1文件访问者分类
注意:超级用户root不受角色权限的限制linux桌面,默认拥有所有权限
4.2文件类型和访问权限(事物属性)
记住一句话:Linux下一切皆文件,对于每位文件都有它自己对外的权限,我们也可以对文件权进行设置来实现文件权限的界定。
文件分类:
d:目录
-:普通文件,例如文本文件、可执行文件等
l:链接文件
b:块设备文件,例如c盘文件
c:字符设备文件,例如鼠标、显示器等
p:管线文件
s:网路文件
注意:在Linux下文件的类型是由其详尽信息中的第一个字符决定的(见上图),与文件后缀没有关系
这么为何我们还要加上文件后后缀呢?
Linux中文件有三种权限:
r:读权限,对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w:写权限,对文件而言,具有更改文件内容的权限;对目录来说具有删掉联通目录内文件的权限
x:执行权限,对文件而言,具有执行文件的权限;对目录来说linux培训,具有步入目录的权限
-:表示不具有该项权限
如上图中的test.cpp文件,对于文件所有者而言,其所具有的权限是rw-,意思就是拥有读权限和写权限,没有执行权限
4.3文件访问权限的相关设置方式4.3.1权限修改
普通用户在家目录中基本上是不受限制的,可以利用chmod指令来对指定文件进行权限设置
句型:chmodu/g/o/a+/-r/w/x[文件]
功能:对指定文件进行权限设置
常见选项:-R递归更改目录的权限(只有文件的拥有者和root才可以改变文件的权限)
chmod命令权限值的格式:
举个板栗:
这儿还可以用八补码数字来更改权限,比如chmod100test.cpp表示将test.cpp文件的拥有者权限更改为不可读不可写可执行,所属组和其他人权限清零,1表示有权限,0表示无权限
4.3.2拥有者更改
句型:chown[选项]用户名文件名
功能:更改文件的拥有者
4.3.3所属组更改
句型:chgrp[选项]用户组名文件名
功能:更改文件或目录的所属组
常用选项:-R递归更改文件或目录的所属组
4.3.4文件类型识别
句型:file[文件]
功能:识别文件类型
常用选项:
5.目录权限
目录和文件一样也有权限,而且两者还略有差异
5.1基本权限
目录的基本权限和文件一样也是rwx
r:读权限,假如目录没有可读权限,则难以用ls等命令查看目录中的文件内容
w:写权限,假如目录没有可写权限,则未能在目录中创建文件,也未能在目录中删掉文件
x:执行权限,假如目录没有可执行权限,则难以cd到目录中
-:表示不具有该项权限
举个板栗:
可见没有r权限是难以使用ll查看文件内容的
5.2默认权限
无论是创建文件还是目录,系统就会手动为其分配默认权限
文件:
1.文件的默认权限为664,即rw-rw-r--
2.通常的文件都是无法直接执行的,所以所有的角色都默认没有可执行权限,为了保证文件的安全性,就默认不会赋于其他人Other写的权限
目录:
1.目录的默认权限为775,即rwxrwxr-x
2.没有执行权限是难以访问目录的,这儿默认去除了其他人Other写的权限
5.3权限网段
Linux规定普通文件的起始权限为666(不包括可执行文件),目录的起始权限是777
为了更好的控制文件权限,系统通过权限网段(umask)来取消部份角色的权限,比如Other的写入权限
可以直接通过umask指令来查看当前系统的默认权限网段
如图,Centos7.6Linux操作系统的权限网段为002(八补码),平台不同权限网段可能也不同
默认权限估算方法:
默认权限=起始权限&(~umask)
注意是先将网段按位取反后再与上起始权限
估算实例:
假定新建一个普通文件,系统起始的权限为666,权限网段为002,带入公式可得默认权限:
假定新建一个目录,系统起始权限为777,权限网段为002,带入公式可得默认权限:
6.粘滞位
粘滞位是为了在一些特殊的场景下对目录进行限制
6.1诞生背景
在未来使用Linux进行开发时未来我们可能会用到共享目录,这种目录是被所有的普通用户共享,拿来保存普通用户形成的临时数据的
假定上司给A、B两个工作小组构建了一个共享目录,让其来分别完成同一项目来进行择优选定,两小组都完成后,尽管A组的成员不能查看B组的项目内容(没有读写权限),而且A组成员可以直接删掉B组的工作文件,这是很不合理的情况
为了防止此类情况的发生,于是就有了粘滞位的引入,粘滞位可以限制目录,致使次目录下的文件只容许拥有者和超级用户能够删掉
6.2使用方式
构建一个共享目录后,借助root权限,使用chmod+t[目录]指令,来因此目录添加粘滞位就可以了,粘滞位添加成功后,该共享目录的Other的可执行权限会弄成t
Linux的权限介绍和理解到这儿就介绍结束了,谢谢你们的支持!
文章有写的不足或是错误的地方,欢迎评论或私信强调,我会在第一时间改正