Linux权限的概念
谈到权限,就先要了解一下linux下的两种用户角色:root用户和普通用户.
超级⽤户也就是root:可以再linux系统下做任何事情,不受限制
普通⽤户:在linux下做有限的事情
超级⽤⼾的命令提⽰符是"#",普通⽤⼾的命令提⽰符是"$"
linux是一个可多用户使用的系统,那么如何进行用户切换呢.
命令:su [⽤⼾名]
功能:切换⽤⼾。
例如:要从root⽤⼾切换到普通⽤⼾user,则使⽤su user。
要从普通⽤⼾user切换到root⽤⼾则使⽤suroot(root可以省略),此时系统会提⽰输⼊root⽤⼾的密码。
Linux权限管理
首先我们要了解一下权限有什么组成,简单来说:权限 = 角色+文件权限属性.
先说说角色(文件访问者)的分类
**linux下一切皆文件,**所以角色就等同于文件访问者,我们就来看一下他们的分类.
• ⽂件和⽂件⽬录的所有者:u---User
• ⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group
• 其它⽤⼾:o---Others
在说完了这个之后,在浅浅的说下⽂件类型,就我们之前学习基础指令的过程中我们涉及到的两种文件类型.(其他的在后续学习中逐渐了解)
d:⽂件夹(目录)
-:普通⽂件
再说说文件权限属性
下面看下文件的基本权限(也是暂时对普通文件和目录分开讨论)
读 (r/4):Read对普通⽂件 ⽽⾔,具有读取⽂件内容的权限;对**⽬录**来说,具有浏览该⽬录信息的权限
写 (w/2):Write对普通⽂件 ⽽⾔,具有修改⽂件内容的权限;对**⽬录**来说具有删除移动⽬录内⽂件的权限
执⾏ (x/1):execute对普通⽂件 ⽽⾔,具有执⾏⽂件的权限;对**⽬录**来说,具有进⼊⽬录的权限
**"---"**表⽰不具有该项权限
⽂件权限值的表⽰⽅法
字符表⽰⽅法: 用rwx分别表示读写执行的方法,正如上面引用框中蓝色所示
8进制数值表⽰⽅法: 用0~7十位数表示rwx拥有的权限所对应的八进制值(正如上面引用框中
红色所示)相加之和
(例如:有读权限和写权限就为4+2=6)
⽂件访问权限的相关设置⽅法
1. chmod

chmod命令权限值的格式:


**注:**664代表 文件的拥有者(u)有读写权限(第一个6)
文件的所数组(g)有读写权限(第二个6)
文件的其他人(o)有读权限(4)
*更改文件权限通常要是文件的所有者或是root.
2. chown

3. chgrp

chown和chgrp指令通常情况下只有root可进行该操作(具体见下红色注)
4. umask

最终权限 = 起始权限&(~权限掩码)
权限掩码:umask指令查询 想更改umask 000(三位八进制数,分别对应u g o 三种角色的权限)
权限要注意的三个点:
1 root无视权限约束,可以对任意文件进行读写
2 文件要执行要满足两个条件:文件内容要是可执行的,文件具有可执行权限
3 权限验证时身份只会识别依次,按照拥有者->所数组->others的顺序,首次识别到是什么角色就对应到什么角色的文件权限属性
注:更改文件的读写权限只是更改文件的本身,但是更改文件的所数组和拥有者是把文件给别人,要征得别人同意,但是通常难以征得,所以在改文件的所数组和拥有者时我们通常要提高权限,用root权限强制给.(sudo命令)
目录的权限
**读权限:**没有读权限可以进入目录也可以新建删除,更改文件名,但是不能查看目录里面内容(ls一系列指令没有权限)
**写权限:**没有写权限可以进入目录也可以查看目录里面内容,但不能对目录里面的文件进行文件名更改,删除新建等操作,但可以对文件里的内容进行修改(文件内容取决于文件的权限,和目录权限无关)
**执行权限:**没有执行权限无法进入到目录中.
注:文件内容 可否被读写,文件可否被执行 取决于文件本身的权限 ,但是文件可否被删除被新建,文件名可否被修改 取决于文件所属的目录的权限 (通常情况下,在linux系统中一个普通用户没办法进入到其他普通用户的家目录里面并进行任何操作)

粘滞位

为了解决这个不科学的问题,Linux引⼊了粘滞位的概念,
粘滞位 使目录中的文件只能由文件的所属者 或目录的所属者 或是root 删除,使用[chmod +t 目录]来定义粘滞位(粘滞位是给目录加的).
以上就是Linux中的权限~下篇见.