03_[Linux操作系统]Linux的权限及权限管理

Posted .阿Q.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03_[Linux操作系统]Linux的权限及权限管理相关的知识,希望对你有一定的参考价值。

目录

Linux权限的概念

su切换用户命令

Linux权限管理

01文件访问者的分类(人)

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

03修改权限的命令(修改人+修改事物的属性)

(1)chmod

(2)chown

(3)chgrp

04文件权限值得表示方法

(1)字符表示形式

(2)8进制数值表示法

目录的权限

粘滞位

权限掩码

关于权限的总结


Linux权限的概念

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

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

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

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

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

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

su切换用户命令

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

  • 超级用户:可以再linux系统下做任何事情,不受限制。
  • 普通用户:在linux下做有限的事情,权限受限制。
  • 超级用户的命令提示符是“ # ”普通用户的命令提示符是“ $ “

 命令:su [用户名]

功能:切换用户

例如:

  • 从root用户切换到普通用户user: su user   (不用输入密码)
  • 从普通用户user切换到root用户: su  root(root可以省略),此时系统会提示输入root用户的口令

注意:虽然从root用户切换到普通用户可以su -user,也不用输入密码。但是也不建议这样写。因为..................bash.........过多?见视频02:31:41

我们建议用 exit 或者 Ctrl + d进行用户回退

我们想要让root执行操作很简单,因为root有最高的权限。所以对于一些操作我们当然可以切换到root用户去执行。

我们不想切换到root用户,只是此处执行命令且用了root用户的身份。那么有没有别的方式,可以实现?

——    sudo 指令

sudo功能:临时权限提升,执行后续命令,以root身份执行

注意:目前我们的Xshell还不能执行sudo指令,那是因为还没有装配置,等讲到vim再讲这个事情 ........................

Linux权限管理

所以权限是由两部分组成:

  1. 事物的属性

01文件访问者的分类(人)

  • 文件和文件目录的所有者:u --- User
  • 文件和文件目录的所有者所在的组的用户:g --- Group
  • 其他用户 :o --- Others

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

03修改权限的命令(修改人+修改事物的属性)

(1)chmod

功能:设置文件访问权限

语法格式:chmod [ u/g/o]  [+/-]  [r/w/x]  文件名 

常用选项:a   表示对所有的访问者(拥有者、所属组、其他人)都操作

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

(2)chown

功能:修改文件的拥有者       (也可以拥有者和所属者一起改变)

格式:chown 用户名   文件名

eg:chown   root   file.txt

(3)chgrp

功能:修改文件或目录得所属组

格式:chgrp  用户名   文件名

eg:chgrp   root   file.txt

了解(2)(3)命令得基本功能和语法格式后,看下面具体实例:

如何把文件的拥有者修改为root?

04文件权限值得表示方法

(1)字符表示形式

不多赘述,就是rwx-。

我们知道,文件属性里面,包含三个对应的权限:拥有者得权限、所属组得权限、其他人得权限

其中三三为对应的一个“ 角色 ”。而角色内部也有顺序,分别是:读、写、可执行。如果该位置是r/w/x,则代表可以读/可以写/可以执行

如果是-,那么就代表不可执行。

所以,既然内部是有顺序的,并且顺序是一定的,每个位置要么是可以xxx,要么是不可以xxx。

即:权限的位置是确定的,并且是两态的。我们记作可以是1,不可是0。

所以:rw-r--r--可以表示为110100100

而三个位置看作一个整体,那么就是类似于三个“  比特位  ”,表示范围是0   ——  7,是8进制数据

(类比一下:0——9是十进制;0——15是十六进制)

所以,rw-r--r--可以表示为110100100可以表示成8进制数字644110是6,100是4)

(2)8进制数值表示法

所以,文件权限值不止可以写成类似于rw-r--r--的字符表示形式;也可以写成644这种8进制数字的表示形式

举个例子:

chmod   a-rwx  file.txt    <==>      chmod   777   file.txt

效果如下:

再如:

目录的权限

  • 权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
  • 权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中(注意:有读权限不可以进入目录读取目录下的文件)

于是, 问题来了~~
换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限
这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?


为了解决这个不科学的问题, Linux引入了粘滞位的概念

粘滞位

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

  1. 超级管理员root删除
  2. 该目录的拥有者删除
  3. 该文件的拥有者删除

权限掩码

关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录,即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

以上是关于03_[Linux操作系统]Linux的权限及权限管理的主要内容,如果未能解决你的问题,请参考以下文章

03_[Linux操作系统]Linux的权限及权限管理

[鸟哥linux视频教程整理]03_04_Linux用户及权限详解

第三课 第四讲03_04_Linux用户及权限详解

Linux_用户组及权限管理

Linux系统配置及服务管理_第04章权限管理

04_用户权限及相关命令