0


了解Linux —— 理解其中的权限

前言

在了解Linux权限之前,先来探讨我们使用的

  1. shell

命令它到底是什么?

  1. Linux

是一个操作系统,我们称其为**内核(

  1. kernel

)** ,正常情况下,我们一般用户操作并不是去直接使用内核,而是通过

  1. kernel

的外壳程序,也就是

  1. shell

  1. kernel

进行沟通。

Shell的简单定义:命令行解释器:

  • 将使用者的命令翻译给和内核处理。
  • 将核心的处理结果翻译给使用者。

​ 对于Windows ,我们使用图形化界面,这并不是直接操作Windows内核,而是通过图形接口,点击,然后完成我们的操作。

​ 而

  1. Shell

对于

  1. Linux

有相同的作用,

  1. Shell

主要对我们的指令进行解析,解析指令传给Linux内核,再根据内核运行出结果,解析给用户。

这里打个比方:

​ 你是一名比较内向的学生,你暗恋这同班的一名女同学,你不好意思向她表达爱意,然后你就通过她的闺蜜(或者朋友)向她含蓄的表达自己对她的喜欢,她闺蜜就将你的意思传达给她;然后她闺蜜再将她的意思传达给你。

这里你就是一名普通用户,你暗恋的女同学就好比操作系统内核,而她的闺蜜就相当于

  1. Shell

一、什么是权限

什么是权限,这个就字面意思,哈哈。

  1. Linux

下,有两种用户:一是超级用户(

  1. root

)、二是普通用户。

**超级用户(

  1. root

):** 可以再

  1. Linux

系统下做任何事情,不受限制

普通用户:

  1. Linux

下受到权限的限制,只能做部分事情

超级用户的命令提示符是

  1. #

,普通用户的命令提示符是

  1. $

在这里插入图片描述

  1. root

用户下创建普通用户

  1. root

就是

  1. Linux

下的超级用户,它可以创建和删除普通用户,修改普通用户密码等等。

创建用户:

  1. useradd 用户名

在这里插入图片描述

​ 也可能显示如下图所示,(原因是家目录中已经有用户

  1. lian

的目录)。

在这里插入图片描述

修改用户密码:

  1. passwd 用户名

在这里插入图片描述

删除用户:

  1. userdel 用户名

在这里插入图片描述

用户的切换

知道了如何创建用户,现在来看用户之间的切换。

  1. su 用户名

在这里插入图片描述

二、

  1. Linux

权限管理

1. 文件访问者的分类(人/用户)

  • 文件/目录的拥有者:u — User
  • 文件/目录的所属组:g — Group
  • 其他用户:o — Other

知道了文件访问者分为三种,那有什么用呢?接着来看。

2. 文件类型和访问权限

文件属性:

我们知道,

  1. ll

是可以查看文件属性,现在来看一下:

在这里插入图片描述

一眼看去,烟花缭乱的;文件属性有很多,首先文件大小、文件最新修改时间和文件名这些就不用多说了,(连接数后面再讲解)

现在来看文件类型、文件权限和文件拥有者和所属组这写内容。

文件类型:

首先,文件类型对应文件属性中的开头,(例如:以

  1. d

开头的文件是目录/文件夹;以

  1. -

开头的文件就是普通文件)

d:文件夹/目录

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

文件权限:

​ 文件权限就三种,分别是

  1. r

(可读) 、

  1. w

(可写) 和

  1. x

(可执行)。

  1. r

:对于文件来说,具有读取文件内容的权限;对于目录,具有浏览目录信息的权限。

  1. w

:对于文件来说,具有修改文件内容的权限;对于目录,具有创建、删除和移动目录中文件的权限。

  1. x

:对于文件来说,具有可执行文件的权限;对于目录来说,具有进入目录的权限。

  1. -

:表示不具有该部分权限。

再回头看,文件权限,它对应的是9个字符啊;这就涉及到文件权限中文件拥有者、文件所属组和其他用户这部分概念了。
在这里插入图片描述

以这个为例,看以权限:

首先,以

  1. d

开头表明这是一个目录;

其次的三个字符

  1. rwx

: 这是文件拥有者的三个权限

再后面三个字符

  1. rwx

: 这是文件所属组的三个权限

最后的三个字符

  1. r-x

: 这是其他用户的三个权限

权限的表示方法:

Linux表示权限说明

  1. ---

没有任何权限

  1. r--

只读

  1. -w-

只写

  1. --x

仅可执行

  1. rw-

可读可写

  1. r-x

可读可执行

  1. -wx

可写可执行

  1. rwx

可读可写可执行
除了上图所示表示方式,还有一种表示方式(

  1. 8进制

表示)

​ 我们将每一个访问者的三个权限看作一个二进制数(其中

  1. -

表示0,其余表示1);这样我们就得到了一个

  1. <=7

并且

  1. >=0

的二进制数(比如

  1. rwx

就是

  1. 111

对应的数是7,

  1. ---

就是

  1. 000

对应的数是0)。

这样我们就能将权限(9个字符)转化成一个8进制数(比如:

  1. rw-rw-rw-

就是

  1. 666

  1. rwxrwxrwx

就是

  1. 777

)。

权限符号8进制2进制

  1. r--

4

  1. 100
  1. -w-

2

  1. 010
  1. --x

1

  1. 001
  1. rw-

6

  1. 110
  1. r-x

5

  1. 101
  1. -wx

3

  1. 011
  1. rwx

7

  1. 111
  1. ---

0

  1. 000

文件访问权限的相关设置方法

​ 说了这么多,那我们能不能自己设置这些权限?当然可以,接着往下看

  1. chmod

修改文件权限

首先,我们应该明白一点,只有文件所有者和

  1. root

可以修改权限

使用格式

  1. chmod [参数] 权限 文件名

在这里插入图片描述

​ 现在来看一下,修改权限有没有成功

在这里插入图片描述

**

  1. chmod

权限命令值的格式**

  1. +

: 向权限范围内加权限

  1. -

: 向权限范围内减(去掉)权限

  1. =

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

用户符号

  • u: 拥有者
  • g: 所属组
  • o: 其他用户
  • a: 所有用户

选项

  1. -R

: 递归修改文件权限

  1. chmod o+w code.c
  2. chmod o-w code.c

设置权限还可以直接使用8进制数来设置

在这里插入图片描述

  1. chmod 777 code.c
  2. chmod 666 code.c
  1. chown

现在,我是文件的所有者,但是我不想要了,我想把文件所有者设置成别人;

  1. chown

就是用来修改文件所有者的(有个前提,需要

  1. root

权限)

​ 选项:

  1. -R

: 递归修改文件所有者

  1. chown [参数] 用户名 文件名

在这里插入图片描述

**

  1. chgrp

修改文件所属组**

现在我们指定如何修改文件所有者了,那如何修改文件所属组呢?

  1. chgrp

用来修改文件所属组(这个前提也是,需要

  1. root

权限)

  1. chgrp [参数] 用户组名 文件名

在这里插入图片描述

**

  1. umask

查看修改文件掩码**

现在我们新建的文件,默认权限是664(

  1. rw-rw-r--

);新建的目录,默认权限是775(

  1. rwxrwxr-x

);这个能不能修改呢?

  1. usmak

用来查看和修改文件掩码

​ 在看这个之前,先来看文件权限又什么影响的:

文件权限 = 默认权限 &(

  1. ~umask

)

默认权限

  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777

​ **

  1. umask

权限掩码**

可以直接用

  1. umask

查询和修改

  1. umask //查看
  2. umask 044 //修改权限掩码

举例:

在这里插入图片描述

​ 我们也可以设置权限掩码:

在这里插入图片描述

3、粘滞位

​ 在Linux系统中,粘滞位 是一种特殊权限位,主要用于控制对特定目录中文件的删除操作。设置粘滞位后,只有文件的所有者或 root 用户才能删除或移动该文件,而其他用户即使有写权限也不能删除或移动这些文件

简单来说就是,有了粘滞位限制,普通用户只能删除和移动自己的文件(

  1. root

无视粘滞位)。

注意: 粘滞位对目录有效,对文件无效。

粘滞位的作用:

粘滞位通常用于多用户环境中的公共目录,以防止用户删除或移动其他用户的文件。设置粘滞位后,目录的其他用户权限位会显示为

  1. t

  1. T

设置粘滞位

  1. chmod +t 目录名 //给目录添加粘滞位
  2. chmod -t 目录名 //给目录去掉粘滞位

当一个目录被设置为

  1. 粘滞位

,则该目录下的文件只能由

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

三、番外篇:

  1. sudo

提权

这里来了解一下

  1. sudo

提权,它可以让执行的只有拥有

  1. root

权限。

但是,我们现在使用

  1. sudo

提权显示失败:

在这里插入图片描述

​ 这里提示大概意思就是,用户

  1. lxb

不在

  1. sudoers

这个文件里,(

  1. sudoers

文件就好似系统里的白名单)。

  1. sudoers

这个文件在

  1. /etc/sudoers

路径下,我们只需要去这个文件里进行修改即可;

我们需要在这个文件中添加这样一行内容:

  1. [用户名] ALL=(ALL:ALL) ALL

在文件中大致在100行作用

  1. CentOs

下),(

  1. ubantu

大致在20行)

创建完成之后我们就能够让普通用户进

  1. sudo

提权了。

在这里插入图片描述

有了

  1. sudo

提权以后,我们就可以使用普通用户,必要时使用

  1. sudo

提权,而不需要切换账号了。

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws

标签: linux 服务器

本文转载自: https://blog.csdn.net/LH__1314/article/details/144163235
版权归原作者 努力学习的小廉 所有, 如有侵权,请联系我们删除。

“了解Linux —— 理解其中的权限”的评论:

还没有评论