【Linux的权限命令详解】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

shell命令以及运行原理

Linux权限的概念

Linux权限管理

一、什么是权限?

二、权限的本质

三、Linux中的用户

四、linux中文件的权限

4.1、文件访问者的分类(人)

4.2 文件类型和访问权限(事物属性)

五、快速掌握修改权限的做法【第一种】

5.1、修改拥有者、所属组、其他用户和所有人的权限

5.2、修改所有人中几个人的权限

5.3、对用户身份进行识别,是否只识别一次?

5.4、更改文件的拥有者

5.5 、更改文件的所属组

5.6、 同时更改拥有者和所属组

六、快速掌握修改权限的做法【第二种】

6.1 、八进制

七、文件类型

八、可执行权限

九、创建文件的默认权限

9.1 权限掩码

9.2 修改umask

十、目录的权限

十一、粘滞位

十二、在root的用户下新建用户和删除用户

总结


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!


提示:以下是本篇文章正文内容,下面案例可供参考

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

1、将使用者的命令翻译给核心(kernel)处理。

2、同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

【Linux的权限命令详解】_第1张图片

Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。

超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

Linux权限管理

一、什么是权限?

权限就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,比如vip,门禁之类的。

二、权限的本质

权限和人有关,权限和事物的属性有关

权限=人(角色)+事物(文件)属性有关

三、Linux中的用户

【Linux的权限命令详解】_第2张图片

【Linux的权限命令详解】_第3张图片

四、linux中文件的权限

4.1、文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User(中国平民 法律题)
  • 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • 其它用户:o—Others (外国人)

4.2 文件类型和访问权限(事物属性)

【Linux的权限命令详解】_第4张图片

【Linux的权限命令详解】_第5张图片

【Linux的权限命令详解】_第6张图片

【Linux的权限命令详解】_第7张图片

五、快速掌握修改权限的做法【第一种】

5.1、修改拥有者、所属组、其他用户和所有人的权限

【Linux的权限命令详解】_第8张图片

一个文件的权限,谁能修改?

文件的拥有者、root

【Linux的权限命令详解】_第9张图片

chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

① 用户表示符+/-=权限字符 实例:

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号: 

u:拥有者(user)

g:拥有者同组用(group)

o:其它用户(other)

所属组和其他用户的权限操作和拥有者都是一样的,同上述操作。

a:所有用户(all)

【Linux的权限命令详解】_第10张图片

5.2、修改所有人中几个人的权限

【Linux的权限命令详解】_第11张图片

5.3、对用户身份进行识别,是否只识别一次?

【Linux的权限命令详解】_第12张图片

  • 对于普通用户,自身要受到对应权限的约束,即使这个文件是自己的!

【Linux的权限命令详解】_第13张图片

注意:对于文件的拥有者,如果删除了文件的拥有者权限,但是所属组的没有删除,它也会禁止读写操作.

结论:权限只会匹配一次!

【Linux的权限命令详解】_第14张图片

5.4、更改文件的拥有者

【Linux的权限命令详解】_第15张图片

  • 这个时候我们把拥有者的改成root用户,但是所属组还是原来的

【Linux的权限命令详解】_第16张图片

结论:身份识别的时候只识别一次,一旦匹配成功就不继续匹配了,如果失败就继续匹配

5.5 、更改文件的所属组

【Linux的权限命令详解】_第17张图片

【Linux的权限命令详解】_第18张图片

这里如果再加上other的读和写的权限,就又可以了!

5.6、 同时更改拥有者和所属组

【Linux的权限命令详解】_第19张图片

怎么不见修改other的权限呢?

因为不需要的。

六、快速掌握修改权限的做法【第二种】

6.1 、八进制

【Linux的权限命令详解】_第20张图片

如上图所示:如果有一个字符的权限有,就是1;如果是-,就是0.

如果我们想去掉所有人的所有权限可以这样做。

chmod 000 test.txt

【Linux的权限命令详解】_第21张图片

赋予所有权限就是下面这条命令.

chmod 777 test.txt

【Linux的权限命令详解】_第22张图片

保留拥有者的读写权限

chmod 600 test.txt

【Linux的权限命令详解】_第23张图片

七、文件类型

windows是通过后缀名来区分文件类型的。

Linux不通过后缀名来区分文件类型。(并不是说Linux不用后缀)

那么通过什么区分呢?

ls -l第一个属性列

-:普通文件,文本文件,可执行程序,库等都叫做普通文件
d:目录文件

b:块设备文件(磁盘等)
c:字符设备文件(显示器等)
p:管道文件
l:链接文件

【Linux的权限命令详解】_第24张图片

【Linux的权限命令详解】_第25张图片

【Linux的权限命令详解】_第26张图片

【Linux的权限命令详解】_第27张图片

我们创建一个管道文件

mkfifo pipe

【Linux的权限命令详解】_第28张图片

【Linux的权限命令详解】_第29张图片

八、可执行权限

如果我们要进入一个目录,需要什么权限? ----> 进入一个目录,需要x权限

能执行 = 具有可执行权限 (x)+ 一个可执行文件

【Linux的权限命令详解】_第30张图片

【Linux的权限命令详解】_第31张图片

【Linux的权限命令详解】_第32张图片

总结:

进入一个目录需要x权限
目录的r权限:用户能否查看指定目录的文件信息
目录的w权限:决定用户是否能在指定的目录内新建,修改,删除文件

九、创建文件的默认权限

【Linux的权限命令详解】_第33张图片

9.1 权限掩码

umask

在创建文件的时候,要在起始权限中,过滤掉(不是简单的减法)再umask中出现的权限

【Linux的权限命令详解】_第34张图片

【Linux的权限命令详解】_第35张图片

9.2 修改umask

umask 0000

【Linux的权限命令详解】_第36张图片

修改了umask后,创建出来的文件权限也发生了改变,所以是uamsk影响了我们的默认权限

十、目录的权限

为什么我们普通人竟然可以删除别人的文件(包括root)合理吗?

【Linux的权限命令详解】_第37张图片

删除一个文件和目标文件有关系吗? ---->没有关系!!!

那么和谁有关系呢? ---- >和我所在的目录有关系!!!

【Linux的权限命令详解】_第38张图片

这个目录的拥有者和所属组所拥有的权限是rwx,root是超级管理员账号,他想干什么就干什么,root可以随便在别人的目录里面创建文件,也可以随便删除别人的文件。

但是,当root在别人的为目录里创建文件的话,还不让这个文件让任何人看。

这个文件的拥有者和所属组具有x权限可以进入目录,在具有r权限,仍然看不了root的文件内容,但是当具有w权限时,便具有了删除root文件的能力,当然只能删除root的文件,还是不能修改。

所以创建一个目录的时候是默认去掉写权限的,一个外来用户进入到这个目录是不能进行创建文件的,当然root除外~~

十一、粘滞位

如果我们想在Linux下,由多个用户建立一个共享文件,来被大家共同访问,怎么办?

首先这个文件不能在我们各自的家目录下创建,为什么?

因为家目录其他人是无法进来的。

【Linux的权限命令详解】_第39张图片

所以,我们只能在系统的非用户目录下创建。(除了自己的家目录的一亩三分地之外,就只剩下root的地盘了),所以,我们要在root的家目录下,由root创建共享目录。

普通用户想要在root账号下创建目录,只能用sudo指令来提升mkdir的权限了。

我们来看一下具体的操作

【Linux的权限命令详解】_第40张图片

【Linux的权限命令详解】_第41张图片

因为root超级管理员把other的权限全打开了,所以其他用户都能够读写、修改并删除。

突然小红出现了,它想搞恶作剧,把小明跟小王聊天的文件给删掉了,那么有没有什么方法防住小红呢?

这时候我们就得引入一个新的概念粘滞位。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

【Linux的权限命令详解】_第42张图片

十二、在root的用户下新建用户和删除用户

【Linux的权限命令详解】_第43张图片

【Linux的权限命令详解】_第44张图片

【Linux的权限命令详解】_第45张图片


总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

你可能感兴趣的:(linux,运维,服务器)