Linux基础——Linux权限详解

简介: Linux基础——Linux权限详解

前言:本篇开始我们要对Linux进行更深入的学习了,让我们来进入新篇章:Linux的权限理解!

首先让我们来初步了解一下本篇的内容:


1. shell命令以及运行原理

Linux操作系统准确来说是:Linux内核+Linux外壳+配套程序

Linux外壳也就是shell

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

shell存在到底有何意义,为什么要有shell?

首先:命令行解释

因为Linux内核的设计非常复杂,用户无法直接向Linux内核进行沟通,更不能直接读懂内核执行完命令的结果,所以shell外壳充当"媒婆"这一角色,来进行用户和内核沟通上的翻译。

外壳将用户输入的指令翻译给内核处理
内核处理后得到的结果翻译给用户

其次:保护内核

有时用户想要内核执行的命令内核无法做到,因此指令根本不会"打扰"内核,它会在shell外壳进行翻译时就被驳回。

注意:shell是对所有命令行解释器的统称
Linux下的shell外壳是bash
windows下的shell外壳是图形化界面


2. 用户

2.1 普通用户和超级用户

一个Linux账号只有一个超级用户:root

创建的其余用户都叫做普通用户

如果想在Linux里切换用户我们可以:

指令:su 用户名

注意:超级用户切换为普通用户不用输密码

普通用户切换为root或其他普通用户需要密码


2.2 指令提权

当我们现在是普通用户,但需要root用户的权限才能使用的指令,来回切换很不方便。我们可以:

指令:sudo 需提权的指令

sudo 可以帮我们提权使用指令,但是如果此用户没有被添加到sudoers白名单sudo就无法提权。(先简单了解)

3. 文件

在我们最初接触Linux使用ls -l查看文件时,我们只考虑了文件名称,在文件名称前的那些代表什么呢?

让我们来了解一下这三者。

3.1 角色属性

在文件属性后的表示角色属性

前者是代表文件的拥有者

后者是代表文件的所属组

拥有者代表这个文件的创建者
所属组代表此组组长

注意:在除了拥有者和所属组之后,还有第三个角色other,
other表示除了拥有者和所属组的其他人

当我们在普通用户目录下用root创建文件拥有者就改变了。

3.2 文件类型

在文件属性的第一个表示的是文件类型

现阶段一般常见的都是文件夹d和普通文件-

3.3 文件的读写权限

以我们刚刚创建的文件为例:

此文件:

拥有者:可读可写不可执行
所属组:可读不可写不可执行
other:可读不可写不可执行

下表能让我们更好理解

3.4 读写权限的进制表示

关于权限我们还可以转化成进制表示:

此处的0,1:有权限代表1,没有权限代表0。

再用刚刚创建的文件为例:

这就是用进制来表示文件的权限


4. 文件修改

4.1 文件权限的修改

方法一

如果我们对当前文件的权限不满意,我们可以:

指令:chmod [参数] 权限 文件名

再用刚刚创建的文件为例:

我们给文件的所有用户加上w权限

注意:只有文件的拥有者或root可修改文件权限

当没有读取权限就去读取时会报错

这里我将所有用户的读取权限全部取消,但是在root用户下我们依然可以读取

因此:权限不能限制root的访问,因为root是超级用户!!!


方法二

修改文件权限时,除了使用+,-,=号还可以用八进制进行修改

指令:chmod 八进制数 文件名

我们依然使用pxt.txt文件来示范:

用八进制实则和二进制有关,将666转化为二进制就是110 110 110
所有人的读写权限都存在,而执行权限无。


4.2 修改文件的拥有者/所属组

修改拥有者

指令:chown 用户名 文件名


修改所属组

指令:chgrp 用户组名 文件名

注意:普通用户是无法把自己的文件给另外一个用户的,因为这很容易出现文件的泄露影响安全,只有root账号或者使用sudo提权才能将文件的拥有者/所属组修改!


5. 文件夹权限

文件夹的权限和普通文件权限有一定差异

r : 用户能否查看文件夹下文件的信息

w : 用户能否在此文件夹下创建/删除文件

x : 用户能否进入此文件夹

在文件夹NULL只有拥有者有创建删除文件的权力,让我们用除root的用户创建时:

因为权限被限制,我们无法创建文件!


6. 默认权限以及权限掩码

6.1 默认权限

当我们同时创建几个文件和目录时:

我们发现目录之间,文件之前的权限都是一样的:

因此:

目录的默认权限为:7 5 5
普通文件默认权限: 6 4 4

文件的权限是由两个因素决定

  1. 文件的起始权限
  2. 文件的权限掩码

一般情况下
目录的起始权限为:7 7 7
普通文件的起始权限为: 6 6 6


6.2 权限掩码

我们可以用指令来查询文件的权限掩码:

指令:umask

我这里默认为022
用起始权限777-022=755,目录的默认权限正好为755
而起始权限666-002=644,普通文件的默认权限正好为644

权限掩码计算

文件的默认权限并不是简单 = 起始权限 - 权限掩码!

真正的计算方法是:最终权限=起始权限&(~权限掩码)

直接记忆可能有点难,我们转化记忆。

  1. 将起始权限和权限掩码都转化为二进制
  2. 再按位比较
  3. 权限掩码为1的地方,最终权限都为0
  4. 权限掩码为0时,不变


修改权限掩码

在Linux中权限掩码是可以修改的:

指令:umask 八进制数

当我将权限掩码修改为771时,创建新文件test3.c时,就只有other有读写权限

7. 总结拓展

在Linux中的权限十分分明,保护也非常到位,除了root外其他用户并不能直接拿走你的文件,也不会修改删除你的文件。


拓展:粘滞位

如果只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。如果是这样,那就不可想象了!

因此在Linux中引入:粘滞位

这样既可以让他使用文件但不会被删除

粘滞位是一种权限位,它可以应用于目录上,用于限制用户对其中文件的删除。当一个目录设置了粘滞位后,只有文件的所有者或者超级用户可以删除该目录下的文件,其他用户无法删除。这样可以防止用户在共享目录中意外删除其他用户上传的文件。

指令:chmod +t

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

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

如有兴趣,可以自行深入了解!蟹蟹大家支持!

目录
相关文章
|
2天前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
20 11
|
2月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
53 2
|
2月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
2月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
36 1
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux专栏10:Linux权限详解(上)
Linux专栏10:Linux权限详解(上)
40 3
|
2月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
30 0
|
2月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
2月前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
|
2月前
|
安全 Linux 数据安全/隐私保护
Linux安全大揭秘:一键切换root权限背后隐藏的秘密
【8月更文挑战第23天】Linux操作系统因其出色的灵活性和安全性备受推崇,用户权限管理是其核心功能之一。本文介绍如何安全地在用户间切换,特别是切换至拥有最高权限的root用户。我们探讨了两种主要的方法:`su` 和 `sudo` 命令,并通过示例展示了它们的应用场景。`su` 命令适合需要执行多个root权限操作的情况,而 `sudo` 更适用于临时执行单个高权限命令。同时,文章还提供了一些最佳实践,如避免长时间使用root账户、定期审查 `sudoers` 文件等,以确保系统的安全性。正确理解和应用这些工具和原则对于维护Linux系统的安全至关重要。
40 0
|
2月前
|
安全 Linux 数据安全/隐私保护
在Linux中,什么是最小权限原则?
在Linux中,什么是最小权限原则?
下一篇
无影云桌面