Linux权限
-
什么是权限?
-
定义:通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,有无,或者能还是不能的问题
- 比如:vip,门禁
-
-
权限的本质
- 权限和人有关(角色)
- 权限和事物的属性有关
-
linux中的用户
-
root(超级管理员)
- 不受权限的约束
-
其他(普通用户)
-
用户转换
-
普通用户转换为root:
-
su
- 作用:将普通用户转变为root用户,且位置不发生变化
-
su -
- 作用:将普通用户转变为root用户,但位置会刷新
-
注意:在变换得时候需要输入root的密码
-
-
root用户变化为普通用户
-
su + 用户名
- 作用,可以任意选择想要变成的用户,并且不需要使用密码
-
-
-
不进行用户转换获得权限
-
指令提权:sudo + 任意命令
- 再输入自己的密码,就可以执行此命令
-
为什么sudo对指令进行提权的时候,输入的是我们自己的密码?
- 因为我们root用户将我们的用户加入进了白名单之类的东西,左移你自己就可以执行这些
-
默认目前普通用户无法执行,需要进行配置
-
-
linux中的角色
-
三种角色
- 拥有者、所属组、other
- linux中具体的角色是需要有人来扮演的
-
-
为什么有所属组?
- 在多人协作的时候可以更好的进行协作
-
文件的权限
-
文件的属性权限,一般为三种:
- 读
- 写
- 可执行权限
-
-
三三为一组,分别对应:所属者、所属组、other
-
第一个字符表示的是文件类型:-:普通文件;d:目录文件
-
拥有者的权限:
- 第一个字符:是否具有读的权限;如果是,就是r,否则就是-
- 第二个字符:是否具有写的权限;如果是,就是w,否则就是-
- 第三个字符:是否具有可执行权限;如果是,就是x,否则就是-
-
-
权限操作
-
快速掌握修改权限的做法
-
一个文件的权限谁能修改?
- 文件拥有者
- root
-
权限修改chmod
-
-
-
-
-
对比权限有无得表现
-
对于普通用户,自身会受到权限的约束,即便是自己的文件
-
对于超级用户root,不受权限的约束
-
-
所以,权限存在的意义是保护一般用户的文件安全性
-
linux在进行权限匹配时,对用户身份进行识别,只识别一次
-
-
修改权限的第二套做法
-
权限=用户角色(具体的人)+文件属性;我们在上面进行的更改是对于文件属性的,现在我们对角色进行更改
-
注意:如果你想要将权限赋予别人,那你需要是root
-
修改命令:
- chown name filename(更改所属者)
- chgrp name filename(更改所属组)
- chown name1:name2 filename(对两个都进行更改)
-
-
-
权限详解
- 三个字符所对应的权限,是就对应二进制的1,否就对应2进制的0
-
文件类型
-
windows中是根据后缀名来区分文件类型的,但是linux中不通过后缀来区分文件类型
-
linux中区分文件类型是根据第一个字符
* :普通文件;文本文件、可执行程序、库等都叫做普通文件
- d :目录文件
- b:块设备文件(最典型代表是磁盘)
- c :字符设备文件(例如屏幕等串口设备)
- p :管道文件
- I :链接文件(类似Windows的快捷方式)
-
注:linux不以文件后缀作为区分文件的类型,但是linx上的工具区分;所以我在linux中对于文件后缀的态度是可以使用
-
-
如何理解可执行权限和可执行
- 能执行=具有可执行权限+你自身就是一个可执行文件
-
目录权限
- 我们要进入一个目录,需要什么权限?进入一个目录,需要x权限
- 目录的r权限:用户能否查看指定目录文件内的文件信息
- 木的w权限:决定用户能否在指定的目录内新建、修改、删除文件
-
目录
- 文件的内容+属性
- 目录的内容就是该目录里的所有的文件信息详情数据
-
linux创建文件的时候,为什么有默认权限,并且普通文件和目录问价的默认权限不同?
-
示例:
-
-
初始权限
- 创建的普通文件,其实权限是:0666(8进制表示),去掉x的
- 创建的目录文件,其实权限是:0777,去掉x的
-
默认权限掩码(umask)
-
umask:在创建文件的时候,要从起始权限中,过滤掉(不是简单的减法),在umask中出现的权限
-
示例:
-
-
注意:在不同的机器上,初始的umask值不一样
-
umask值修改
-
命令:umask + 修改后的8进制值
-
示意:
-
-
-
umask怎样影响权限?
-
最终权限=初始权限&(~umask)
-
具体示意:
- 普通文件的默认是666->110 110 110;umask是022 ->000 010 010
- ~umsak = 111 101 101
- 初始文件&(~umask) = 110 100 100 也就是:644;符合
-
-
-
-
为什么我们普通人能够删掉不是我们自己的文件(包括root)?
- 删除一个文件和目标我那件有关系吗?没关系!!!和所处的目录有关系。
- 删除文件所对应的权限是w,我们想要删除一个文件,只需要该目录的权限中有w就可以,该目录中的文件,有没有我的权限不重要,想删就删
- 所以说能否删除一个文件,取决于处于那个目录下
-
那么,我们想建立一个所有用户都能够访问的,应该怎么做?
- 不能在家目录下创建(其他人进不来)
- 我们只能在系统的非用户目录下创建