网页制作三剑客工具,模板建站可以做优化吗,研究院网站建设,电商公司名字大全Linux权限 一、Linux 权限的概念二、Linux 权限管理1. 文件访问者的分类2. 文件类型和访问权限#xff08;事物属性#xff09;3. 文件访问权限的相关设置方法 三、默认权限1. 对文件和目录进行操作需要的权限2. 文件和目录的默认权限3. 粘滞位 一、Linux 权限的概念
Linux … Linux权限 一、Linux 权限的概念二、Linux 权限管理1. 文件访问者的分类2. 文件类型和访问权限事物属性3. 文件访问权限的相关设置方法 三、默认权限1. 对文件和目录进行操作需要的权限2. 文件和目录的默认权限3. 粘滞位 一、Linux 权限的概念
Linux 下有两种用户超级用户root、普通用户。 超级用户可以在 Linux 系统下做任何事情不受限制 普通用户在 Linux 下做有限的事情。 超级用户的命令提示符是 “#” 普通用户的命令提示符是 “$”
命令su [用户名] 功能切换用户。 例如要从 root 用户切换到普通用户 user则使用 su user。 要从普通用户 user 切换到 root 用户则使用 su rootroot可以省略此时系统会提示输入 root 用户的密码如下图 二、Linux 权限管理
我们在使用 ll 指令的时候通常会看到文件或目录名前面有一串的数据那么它们是表示什么意思呢例如下图红色框中 首先我们知道下面三列就是时间准确来说是上一次修改文件或目录的时间 然后就是下面这一列的数字就是表示文件或目录的大小 再下来我们了解两列 lmy 表示什么。
1. 文件访问者的分类
首先我们先要了解文件访问者的分类分为三类
文件和文件目录的所有者u—User文件和文件目录的所有者所在的组的用户g—Group其它用户o—Others
而在我们下图中的两列 lmy中第一列 lmy 表示的是 user第二列表示 group如下图 而除了 user 和 group 之外就是属于 other 组了属于 other 组的用户没有权限访问这个文件或者目录。
2. 文件类型和访问权限事物属性
而最前面的那段字符如下图 这段字符表示什么意思呢这段字符的含义如下 而文件类型中的表示含义如下 d文件夹-普通文件l软链接类似Windows的快捷方式b块设备文件例如硬盘、光驱等p管道文件c字符设备文件例如屏幕等串口设备s套接口文件访问者权限的基本表示如下
读rRead 对文件而言具有读取文件内容的权限对目录来说具有浏览该目录信息的权限写wWrite 对文件而言具有修改文件内容的权限对目录来说具有删除移动目录内文件的权限执行xexecute对文件而言具有执行文件的权限对目录来说具有进入目录的权限- 表示不具有该项权限
例如下图的 Test 目录中 第1位的 d 就是表示这个文件类型为目录2-4位为 user 所拥有的权限分别为读写执行5-7位为 group 所拥有的权限也是读写执行最后三位为 other 的权限只有读和执行的权限没有写的权限。
3. 文件访问权限的相关设置方法
命令chmod 功能设置文件的访问权限 格式chmod [参数] 权限 文件名
说明只有文件的拥有者和 root 才可以改变文件的权限
修改权限字符 向权限范围增加权限代号所表示的权限 -向权限范围取消权限代号所表示的权限 向权限范围赋予权限代号所表示的权限
用户符号 u拥有者 g拥有者同组用 o其它用户 a所有用户
例如我们 touch 一个文件它的默认权限如下图 我们给 user 加上 x 权限 此时 test.c 的 user 用户就有了 x 权限我们再给 other 用户加上 rwx 权限如下图 最后我们再将 group 组的权限全部去掉如下图 修改权限的操作就如上所示其实我们还有另外一种修改权限的方式就是使用二进制的方式
例如 rwx 是三位字母我们可以使用 0 或 1 表示其权限的有无所以这三位我们可以看作整体组成一个八进制的数字来判断其用户权限的有无例如 r-x可以用二进制 101 表示其八进制为 5–x 可以用二进制 001 表示其八进制为 1rwx 可以用二进制 111 表示其八进制为 7。
所以在修改权限时我们也可以使用三位8进制数字的方式修改例如我们要将 other 的权限全部去掉而 user 和 group 的权限全部加上如下图 再例如我们将所有组的权限都去掉如图 以上就是修改权限的相关内容。
三、默认权限
1. 对文件和目录进行操作需要的权限
在学习默认权限之前我们需要了解我们对文件或目录进行操作需要的权限。
首先我们先了解一下进入一个目录需要什么样的权限呢我们逐一尝试首先我们先保留 读(r ) 权限 读( r) 权限不能进入一个目录然后我们分别只保留 写(w) 和 执行(x) 权限 我们可以观察到进入一个目录是只需要 执行(x) 权限的。
然后我们将 dir 的权限放开在里面新建一些文件如下 然后我们对 dir 读(r )、写(w) 去掉我们进入这个目录然后发现查看和新建文件都不可以了如图 原因很简单因为 dir 这个目录只有 执行(x) 权限而 ll 指令查看文件属性是需要 读( r) 权限而新建文件则需要 写(w) 权限大家可以自己去实现验证一下。
所以总结一下
是否允许一个指定用户查看目录的文件列表需要 读( r) 权限。是否允许一个指定用户在当前目录下新建文件或删除文件需要 写(w) 权限。进入一个目录需要 执行(x) 权限。一个文件一定是属于一个目录的一个文件能不能被查看是由目录的权限决定的。一个文件一定是属于一个目录的一个文件能不能被删除不是由这个文件本身决定的是由所属目录与对应账户是否拥有 写(w) 权限决定的
2. 文件和目录的默认权限
我们要知道新建文件默认权限为 666 新建目录默认权限为 777但是实际上我们新建一个文件和目录观察它们的默认权限并不是我们所说的如下图 如图我们可以观察到新建的 test 目录默认权限为 776新建的 test.c 文件默认权限为 664原因就是创建文件或目录的时候还要受到 umask 权限掩码的影响。umask 功能查看或修改文件掩码。
我们在命令行输入 umask 即可查看权限掩码如下图 修改权限掩码在 umask 后跟上权限掩码即可 那么为什么会存在权限掩码呢权限掩码是什么呢它有什么用途呢下面我们来分析一下。
假设我们不受权限掩码的限制我们将权限掩码改成 000 然后创建一个目录如图 然后我们进入这个目录创建一个文件 现在这个文件的默认权限 666因为我们的权限掩码改成了 000现在这个文件中other 组是有 写(w) 的权限所以就意味着所有人都可以对这个文件进行修改这就使这个文件变得不安全所以我们应该把这个文件中 other 组的 写(w) 权限去掉如下图 现在这个文件就变得安全了吗不是虽然在这个文件中other 组没有了 写(w) 的权限但我们前面讲过一个文件能不能被删除不是由这个文件本身决定的是由所属目录与对应账户是否拥有 写(w) 权限决定的我们要知道这个目录对 other 组是放开所有权限的因为权限掩码是 000所以就意味着所有人都可以进入这个目录然后删除这个文件意思就是你不让我看我就毁掉这意味着这整个目录都是不安全的
所以我们回过头来看为什么要有权限掩码我们到现在应该可以猜到了是为了保护目录和文件的安全具体一点就是不让 other 组对我们的目录和文件构成威胁。
那么权限掩码是怎么做到的呢原因是凡是在权限掩码中出现的权限最终都要在起始权限中去掉。 例如下图 所以权限掩码去掉了 other 组的 写(w) 权限就有效地保护了目录以及目录内的文件安全。上图中的具体实现就是最终权限 起始权限 (~umask).
所以这就讲通了新建一个目录的实际默认权限为什么是 775新建一个文件的实际默认权限为什么是 664 了。
3. 粘滞位
一般而言我们上面所说的情况都不太会出现因为不同的账号是不会在同一个目录下的但是如果有特殊情况我们多个账号想互相协同共享一些数据但又不希望别人修改我们的数据呢
这时候就需要我们用到粘滞位了粘滞位的使用是 chmod t 目录名 粘滞位是只能给目录设置的使用如下 当一个目录被设置为粘滞位则该目录下的文件只能由
超级管理员(root)删除该目录的所有者删除该文件的所有者删除