【Linux权限管理】(二)

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

另一个问题:假如我想更换该文件的拥有者和所属组应该咋办?

这个时候我们就可以使用chown 和 chgrp 指令了:

chown:

功能:修改文件的拥有者

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

chgrp:

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

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

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

我们可以来试试:

[root@VM-8-12-centos lesson6]# ll
total 8
drwxr-xr-x 2 root root 4096 Dec  2 21:31 mydir
-rwxrwxrwx 1 root root    0 Dec  2 21:30 mytxt.txt
-rwxr--rwx 1 root root  110 Dec  2 17:05 text.c
-rw-r--r-- 1 root root    0 Dec  2 21:31 text.cpp
[root@VM-8-12-centos lesson6]# chown grm text.c
[root@VM-8-12-centos lesson6]# ll
total 8
drwxr-xr-x 2 root root 4096 Dec  2 21:31 mydir
-rwxrwxrwx 1 root root    0 Dec  2 21:30 mytxt.txt
-rwxr--rwx 1 grm  root  110 Dec  2 17:05 text.c
-rw-r--r-- 1 root root    0 Dec  2 21:31 text.cpp
[root@VM-8-12-centos lesson6]# 

不难发现该文件的所属组已经被修改成功。

修改所属组也是同样的方法,只是用的命令变为:chgrp

4 文件掩码

通过上面我们知道:

超级用户建立一个普通文件(不包括可执行文件)的默认权限是 :rw- r-- r--  (644)

而建立一个目录的默认权限是:rwx r-x r-x  (755)

那么为什么是这样子的呢?

系统新建文件夹起始权限 =0666 ,新建目录起始权限 =0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask 的影响。

而umask就是文件掩码。那最终权限(也就是系统的默认权限)与起始权限和文件掩码有啥关系呢?

最终权限=mask & ~umask (mask是文件起始权限)

umask

功能

查看或修改文件掩码

格式: umask 权限值

说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为 0002 。

在超级用户下建立
文件:
110 110 110  (666)
111 101 101 &
------------
110 100 100  (644)
目录:
111 111 111  (777)
111 101 101 &
------------
111 101 101  (755)

假如我们想修改系统默认的文件掩码呢?

可以使用命令:

umask XXX

我们不妨跳转到普通用户下来使用一下:

[grm@VM-8-12-centos ~]$ umask 012
[grm@VM-8-12-centos ~]$ touch tmp.txt
[grm@VM-8-12-centos ~]$ mkdir -p dir
[grm@VM-8-12-centos ~]$ ll
total 4
drwxrw-r-x 2 grm grm 4096 Dec 18 13:24 dir
-rw-rw-r-- 1 grm grm    0 Dec  2 22:30 grmfile
-rw-rw-r-- 1 grm grm    0 Dec 18 13:23 tmp.txt

9c5d0da0359346bc9fbda403abbc3f88.png

通过计算我们也能很快速的得到上面的结果。


5 目录的权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

其中比较容易出错的就是这个可执行权限了,进入一个目录首先需要的就是可执行权限,这点大家务必要牢记。


6 粘滞位

于是 , 问题来了 ~~

换句话来讲 , 就是只要用户具有目录的写权限 , 用户就可以删除目录中的文件 , 而不论这个用户是否有这个文件的写权限 .

这好像不太科学啊 , 我张三创建的一个文件 , 凭什么被你李四可以删掉 ? 我们用下面的过程印证一下:

我们用root用户创建一个共享目录(也就是其他用户都能够在里面建立文件的目录)将其权限都打开

b869464723424177ac294b12e3b05e79.png

然后其他用户以及root就可以往里面添加自己创建的文件了

9a8150dc4cae4c7ca9a2590cfa73890d.png

但是问题来了,如果有一天grm把bxz惹毛了,bxz一气之下就把grm所创建的文件给干掉了,操作系统会同意这样做的吗?

9a40bc5645604b03bcc8ee961de8b87a.png

我们发现好像还真的就删除了,这合理吗?还是一个bug?

所以我们就引出了粘滞位的概念:

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

  一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

我们为share目录增加一个粘滞位:

[root@VM-8-12-centos /]# chmod +t share
[root@VM-8-12-centos /]# ll
total 84
lrwxrwxrwx.   1 root root     7 Mar  7  2019 bin -> usr/bin
dr-xr-xr-x.   5 root root  4096 Jul 28 11:37 boot
drwxr-xr-x    4 root root  4096 Nov  4 17:34 cpp
drwxr-xr-x    2 root root  4096 Nov  5  2019 data
drwxr-xr-x   19 root root  3020 Sep 20 16:33 dev
drwxr-xr-x.  95 root root 12288 Dec  2 22:04 etc
drwxr-xr-x.   4 root root  4096 Dec  2 22:02 home
lrwxrwxrwx.   1 root root     7 Mar  7  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Mar  7  2019 lib64 -> usr/lib64
drwxr-xr-x    3 root root  4096 Oct  3 20:34 linux
drwx------.   2 root root 16384 Mar  7  2019 lost+found
drwxr-xr-x.   2 root root  4096 Apr 11  2018 media
drwxr-xr-x.   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.   4 root root  4096 Sep 20 15:18 opt
dr-xr-xr-x  117 root root     0 Sep 20 16:33 proc
dr-xr-x---.   8 root root  4096 Nov 23 21:26 root
drwxr-xr-x   25 root root   880 Nov 15 20:05 run
lrwxrwxrwx.   1 root root     8 Mar  7  2019 sbin -> usr/sbin
drwxrwxrwt    2 root root  4096 Dec 18 13:58 share
drwxr-xr-x.   2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x   13 root root     0 Sep 26 20:53 sys
drwxrwxrwt.   8 root root  4096 Dec 18 12:56 tmp
drwxr-xr-x.  14 root root  4096 Jan  8  2021 usr
drwxr-xr-x.  20 root root  4096 Jan  8  2021 var

8cc4b96ddbae4b56b4bcaee1b594f25d.png

我们发现other的最后一位权限由x变成了t

接下来我们再删除来试试:

[bxz@VM-8-12-centos share]$ ll
total 8
-rw-rw-r-- 1 bxz  bxz   0 Dec 18 13:53 bxz1
-rw-rw-r-- 1 bxz  bxz   0 Dec 18 13:53 bxz2
-rw-rw-r-- 1 grm  grm  30 Dec 18 13:52 grm1
-rw-rw-r-- 1 bxz  bxz  91 Dec 18 13:54 nxz1
-rw-r--r-- 1 root root  0 Dec 18 13:51 root1
-rw-r--r-- 1 root root  0 Dec 18 13:51 root2
[bxz@VM-8-12-centos share]$ rm -rf grm1
rm: cannot remove ‘grm1’: Operation not permitted

65fef467119c4bab9371090cf3a5b163.png

很明显该操作现在已经不被允许了。


7 权限的总结

目录的可执行权限是表示你可否在目录下执行命令。

如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
4月前
|
算法 Linux 数据安全/隐私保护
【linux】root大王如何制约普通用户——权限管理
【linux】root大王如何制约普通用户——权限管理
|
1天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
13 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
82 14
|
6月前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
31 1
|
5月前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
5月前
|
安全 Linux Shell
【Linux】权限管理
【Linux】权限管理
47 5
|
6月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
6月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
6月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。
|
6月前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
33 4