文章目录
- 一.用户
- 1.分类
- 2.su
- 3.su-
- 4.sudo
- 二.文件
- 1.文件分类
- 2.文件权限
- 3.文件权限的身份
- 4.chmod——改写文件权限
- 第一种方式
- 第二种方式
- 5.chown——改写文件拥有者身份
- 6.chgrp ——改写文件所属组身份
- 7.umask ——设置权限掩码
- 8.目录权限
- 9.粘滞位——特殊的可执行权限
一.用户
1.分类
一张图带你认清用户:
2.su
示例:
3.su-
示例:
4.sudo
示例:
二.文件
- 我们看着下图红的部分可能有点懵,不急我们一个一个说。
1.文件分类
我们先看第一部分——文件的分类
这时d就是——文件目录
2.文件权限
-
文件的权限分为:
-
读权限——r,
-
写权限——w,
-
以及可执行权限——x,
-
对应位置没有权限—— -
-
到这里我们再看最初给的那张图片,或许理解了一点。
-
但为啥有3组权限呢?这3组权限有什么意义吗?我们接着讲。
3.文件权限的身份
- 假如你建立了一个文件,这时你是这个文件的拥有者。
- 当你和另一个人分享一个文件时,另一个人是这个文件的所属组,也就是你跟另一个人拉了一个群私聊。
- 那么再出现一个人想要看这个文件时,那么这个人就是其他人。
-
说明:用户是人名,扮演的角色就是其身份,比如张三是校长,张三就是人名——用户,校长就是角色——身份。
-
总结
有了这几个概念,我们再来看分析最开始的那张图。
- 补充:连接数指的是目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)
- 说明:当拥有者与所属组相同时,优先使用拥有者的权限。
4.chmod——改写文件权限
- 用chmod改权限,其权限身份必须是拥有者,或者用户是root用户。
- 创建一个test.c文件
第一种方式
第二种方式
- 使用二进制来表示文件的指定位置上的权限(指定位置上的权限是确定的),0代表指定位置上没有权限,1代表指定位置上有权限。
- 举例:
- 777 (8进制)可看成 111 111 111 这是对文件的所有位置都加上权限。
- 000 这是文件的所有位置都取消权限。
同样的操作可以写成:
5.chown——改写文件拥有者身份
-
说明:普通用户改写文件权限身份,需经过另一个权限身份的同意,因此通常操作不被允许。而root用户,则不需要。
-
我们先要使用root账号,并且要创建两个用户名——这是我创建的shun_hua 以及 tmp
- 这时我们就把文件身份的拥有者改为了tmp
6.chgrp ——改写文件所属组身份
- 此时我们要想再改回来呢?
- 只需一条指令
7.umask ——设置权限掩码
- 普通文件的默认权限是——666
- 目录文件的默认权限是——777
我们创建一个文件和一个目录:
- 目录的权限是——755
- 文件的权限是——644
此时我们再看一下掩码:
- 掩码 —— 22
那这是怎么计算的呢?其实要按照 ——默认权限 &(~掩码)
8.目录权限
- r ——能进入目录,但是不能对目录的内容进行查看
- w ——能进入目录,但是不能对目录的内容进行修改,删除,创建 。
- x ——不能进入目录,也不允许对目录进行指令操作。
- 用户目录的默认权限是——700,只能拥有者/root进行操作。
9.粘滞位——特殊的可执行权限
- 说明:是否对一个文件进行删除,并不由该文件的权限决定,而由该文件所处的目录的用户权限进行决定。
问题引出:如果设置一个共享目录,这个目录对其他人的权限是:可读,可写,可执行。
-
此时,一个用户在此目录下创建一个文件之后,另一个用户在此目录下可对改文件进行删除工作,那么如果不想另一用户对此文件进行删除的话,我们就只好把其它人的写权限去掉,此时原来用户也无法创建文件了,这该怎么办呢?
-
答案——使用粘滞位。
-
粘滞位只允许文件的拥有者/root对文件进行删除的工作,而其它用户则对该文件删除不了。
-
因此:共享目录下设置粘滞位是很有必要的,也的确如此。
-
补充:Linux系统的根目录下,默认提供了一个共享目录tmp。