【Linux】权限管理(下)

简介: 【Linux】权限管理(下)

2. chown(修改文件的拥有者)

功能:修改文件的拥有者


格式:chown [参数] 用户名 文件名


当前我的家目录有如下用户:

df54b09513084f9d8dd9171fe4da6f1b.png

sherry 用户当前文件夹:

4a5fb430e72c404589668cac4ce3d72c.png

如果我想要把 file.txt 的 拥有者 从 sherry 改为Tchey_Y ,能否修改成功?

6837e4e85a0747748860524013be4436.png

表示权限不被允许, sherry 即时拥有者又是所属组,为什么不让我更改呢?


在 Linux 上,总不可能在你给权限的时候给别人留个言,说我给你个权限吧,毕竟白送给别人东西也需要对方接受才行。所以 普通用户是无法直接修改文件拥有者的!


但是可以用 root 强制把文件拥有者改掉,因为 root 是超级管理员,比如使用 sudo 提权一下,然后强制改掉:

28f051bb88724aaaabee475207c280cd.png

3. chgrp(修改文件的所属组)

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


格式:chgrp [参数] 用户组名 文件名


常用选项:-R 递归修改文件或目录的所属组


同样的,通过 sudo 提权修改:

e680542da6214029ac7a375e3d63098d.png

补充:chown 和 chgrp 可以同时使用,格式为:sudo chown 用户名 : 用户名 filename


比如将拥有者和所属组都改回 sherry :

6d02f090c5494036b1fb8d6fb68096a3.png

4. 有无权限的区别

首先,我将 t.txt 的权限全部去掉:

7017e9df4ee448e8a92733d9b641cdcf.png

如果我现在读 t.txt:

432cc8178d3c4b198f72db9f3d08a80e.png

被权限拒绝了,再也用 echo “hello” > t.txt 写入试试:

156c47693a17436db5849478cf7ea43e.png

我当前是文件的拥有者 sherry ,但是我在没有权限的情况下依然不能访问!


那么 root 呢?我们用 root 试试:

605a3b662aa844b898c323b202754d65.png

我们发现,权限并不能约束 root !因为 root 是超级管理员,权限是约束普通人的。


总结:Linux 上权限是约束普通用户的,root 不会被约束!对于普通用户,被权限约束了什么都干不了;对于 root即使没有权限还是能畅通无阻。


5.目录的权限

目录权限的功能:


可执行权限 - x : 如果目录没有可执行权限, 则无法cd到目录中.

可读权限 - r : 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

可写权限 - w : 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.


如果进入一个目录,只需要一种权限,就是可执行权限 x:

19f8be4b48484676b662f24a356d32f5.png

如果进入一个目录,没有 w 权限,则不能在目录中创建文件:

f23cc4e295e04758a9bfa56f276f9b5e.png


对于目录来讲,在没有r权限的目录下,无法查看当前目录下的文件名和文件属性:


c7da65a48aa04a4e832062037a76a0af.png


总结:目录文件的 r 读权限不是影响我进入(cd)目录,而是影响我查看(ls)指定目录下的文件内容 ;w 写权限 影响我在当前目录下进行创建(touch),更改(mv),删除(rf)文件。x 权限:是否允许用户进入对应目录。


6.默认权限

权限起始分为三部分:


默认权限:也就是我们看到的文件和目录一创建就有的权限。

起始权限:系统设定的权限。

最终权限:系统为了更好的控制文件权限,系统会有默认的 权限掩码 的概念(umask),起始文件和权限掩码进行计算后得到最终权限。


补充说明:


普通文件起始权限:666开始,目录文件的起始权限:777。它们默认都是八进制表示的。


Linux 上权限掩码可以用 umask 指令查看:

baacc965cc004dabbbbf8e41ee75156c.png

我们看待权限掩码 0002 时,看后三位002,这三位是八进制序列,一个八进制位是3个二进制位,翻译成二进制序列:000 000 010。第一位暂时不用管。


权限掩码特性:在起始权限中,去掉在权限掩码 umask 中出现的权限,不能影响其他任何权限。意思就是说,只要在 umask 中出现的权限,在 最终权限 里就不能出现!


那么 最终权限 是怎么计算出来的呢?

其实这时有一个计算公式的:最终权限 = 起始权限 & (~umask) (起始权限的值,按位与 取反后的权限掩码)


举个例子,比如我新建一个文件:

65ad81b46a734ea79c344a8f8f7bf133.png

它的权限rw-rw-r–翻译成八进制就是 664,而翻译成二进制序列就是 110 110 100。

        起始权限:110 110 110
        权限掩码:000 000 010
       权限掩码取反:111 111 101
起始权限 & 权限掩码取反 = 110 110 110
             111 111 101 &
             -----------
  创建文件的最终权限  =   110 110 100 


我们修改一下 umask 的值:

71ea6e3a7bdb4a009d2e6cb2f7506de8.png

这种情况下,我们创建的文件的最终权限是什么?


答案:

5717bab4117f4d6083bc979129d1695e.png

rw-rw-r–翻译成八进制是 660


7.粘滞位

粘滞位出现的背景:在使用 Linux 的时候,未来可能会有一些共享目录,被所有的用户共享,用来保存普通用户产生的临时数据,使用户之间的安全更有保障。


在一台机器上,可能会有多个用户:

9f4c231e29f0421196046cf450bd220d.png

而在 Linux 下,作为一个普通用户,它的家目录是只对自己开放的,从sherry 用户的权限只对 拥有者 有 rwx 权限就可以看出,且 所属组 和 other 没有任何权限。


而对于 共享目录 ,一般是由 root 用户创建,由root将权限放开后,供这台机器上的用户使用,从而满足不同的用户在公共的目录下进行文件的增删查改。


我们这里直接 提权 创建一个 public 目录,并开放权限chmod 777 public:

74ffafa1dfa74e84b3b2f6f150f646e8.png

假设本来sherry 和 Tchey_Y 关系很好,之前总是一起互相看文件,这个行为由于在 共享目录 的前提下也都可以进行,但是他们有一天闹了矛盾,Tchey_Y 把原先对 other 放开的 r 权限给全封掉了,导致 sherry 无法查看了:

8d42ff1deccd42ed9418fec0ad4ce51c.png

于是 sherry 想着你不让我看,那么我就删你的文件!

5455fb15ae004597924d82e9c776362d.png

为了让大家共享文件,且不让其他人随便删除别人的文件,于是就有了粘滞位。


所以 Tchey_Y 找到了 root 告状, root 就设置了粘滞位


粘滞位只能给目录添加,所以 root 就使用 chmod +t public 给 public 添加了粘滞位:

d78b8916b7af4ca09b8712bb94609474.png

(使用指令时为 a+t ,意思是给三个角色都 +t,但是只会把原先 other 的 x 的位置改为 t)


这就说明我们的 粘滞位 已经添加成功。


我们再试试能不能删除:

09066a6545ae4f63b1a6882b272388ee.png

其他用户没有权限为什么能删我的文件,这是权限的bug吗?为什么粘滞位只能给目录添加?

能否在特定目录下,创建或者删除文件由该目录的 w 权限决定。

那么既然这样,为什么要粘滞位 ?把 w 权限去掉别人就不能删我的文件了吗?

注意:这是共享目录,是多人合用的,如果把 w 权限去掉了,这也就把普通用户在该目录下创建文件的权限也去掉了。只有加上 w 权限,才能让其他用户正常地使用。

而被删的问题是由目录导致的,所以只能给目录添加 粘滞位 。

那么谈到这里,当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件能被谁删除呢?

超级管理员删除(root)

该目录的所有者删除

该文件的所有者删除


8.总结:

今天我们了解了Linux中的权限管理,主要学习了shell运行原理、Linux上用户权限、权限管理、更改文件访问权限、目录权限、默认权限和粘滞位等。接下来,我们将继续学习Linux的的相关知识。希望我的文章和讲解能对大家的学习提供一些帮助。


当然,本文仍有许多不足之处,欢迎各位小伙伴们随时私信交流、批评指正!我们下期见~

c3ad96b16d2e46119dd2b9357f295e3f.jpg

相关文章
|
3月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
55 0
|
5月前
|
Linux Go 开发工具
Linux 实操篇-组管理和权限管理
Linux 实操篇-组管理和权限管理
68 0
|
7月前
|
数据安全/隐私保护
43Linux - 用户/权限管理(修改文件所属组:chgrp)
43Linux - 用户/权限管理(修改文件所属组:chgrp)
29 0
|
23天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
14 1
|
4月前
|
Unix Shell Linux
在Linux和类Unix系统中,Shell提供了多种命令用于用户和权限管理
在Linux和类Unix系统中,Shell提供了多种命令用于用户和权限管理
36 4
|
2天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
7 0
|
2月前
|
安全 Linux Shell
linux用户与权限管理
在Linux中,用户和权限管理确保系统安全。创建用户用`useradd`或`adduser`,删除用户加`-r`参数用`userdel`。修改用户属性用`usermod`,密码管理用`passwd`。组管理涉及`groupadd`(创建)、`groupdel`(删除)和`usermod`(添加用户至组)。权限用`chmod`调整,`chown`和`chgrp`改变所有权和组。`root`用户具有最高权限。这些工具支持安全的资源访问控制。
16 2
|
2月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
在Linux操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他三个层级的读、写、执行权限。通过分析权限位的具体含义和实际作用,文章旨在提供一套系统的方法论,以帮助系统管理员和开发人员更有效地配置和管理文件权限。同时,我们将通过实例展示如何使用命令行工具和配置文件来修改和查看文件权限,以及如何利用权限管理来增强系统的安全性。
|
2月前
|
安全 Linux 数据安全/隐私保护
深入理解 Linux 文件系统的权限管理
【2月更文挑战第30天】 本文旨在透彻探讨 Linux 操作系统中文件系统权限的核心概念、实施机制及其对系统安全性的影响。我们将剖析用户身份、文件权限和访问控制列表(ACL)的相互作用,并展示如何通过命令行和图形界面工具有效管理这些权限。文章还将涉及 SELinux 这一强大的安全模块,以及它如何在更细粒度上增强文件系统的安全性。通过对权限管理的深入分析,读者将获得维护 Linux 系统安全的实用技能,并对权限管理策略的设计有更全面的理解。
|
2月前
|
安全 Linux 数据安全/隐私保护
『Linux升级路』权限管理
『Linux升级路』权限管理