Linux权限管理

此博客仅当学习笔记,所有内容均参考C语言中文网,望支持正版,至C语言中文网查看详细内容

所谓权限管理,其实就是指对不同的用户,设置不同的文件访问权限,包括对文件的读、写、删除等,在 Linux 系统中,每个用户都具有不同的权限,拿非 root 用户来说,它们只能在自己的主目录下才具有写权限,而在主目录之外,只具有访问和读权限。

1 Linux 权限管理的重要性

在Linux系统中为什么要设定不同的权限,所有用户都直接使用超级管理员root的权限身份不好吗?
由于绝大多数用户使用的是个人计算机,使用者一般都是被信任的人(家人、朋友等)。在这种情况下,大家都可以使用管理员身份登陆。但是在服务器上就不行了,往往运行的数据越重要,价值越高,则服务器对权限的设定就越详细,用户的分级也要越明确。
和Widows系统不同,Linux系统为每个文件都添加了很多属性,最大的作用就是维护数据的安全。举个简单的例子,在Linux系统中,和系统服务有关的文件通常只有root用户才能读写,就拿/etc/shadow文件而言,此文件记录了系统中所有用户的密码数据,非常重要,因此不能让任何人读取(否则密码数据会被窃取),只有root用户才可以有读写权限。
此外,如果你有一个软件开发团队,你希望团队中的每个人都可以使用某一目录下的文件,而非团队的其他人则不予以开放。通过之前的学习,我们知道,只需要将团队中的所有人加入新的用户组,并赋予该用户组读写目录的权限,即可实现要求。反之,如果你的目录权限没有做好,就很难防止其他人在你的系统里乱搞。

2 Linux chgrp命令:修改文件所属组

chgrp(change group)命令的基本格式如下:

[chen@localhost~]$ chgrp [option] group_name filename
选项作用
-R递归更改

在这里插入图片描述
【例1】更改/home/chen/wen1文件,/home/chen/wen2文件的所属组为chen,并查看用户组chen下所有的用户。

[chen@localhost~]$ chgrp chen ./wen1 ./wen2 <<- 更改所属组
[chen@localhost~]$ ls -l ./wen1 ./wen2 <<- 查询文件属性
-rw-rw-r-- .1 chen chen 0 Mar  11 00:08 ./wen1
-rw-rw-r-- .1 chen chen 0 Mar  11 00:08 ./wen2
[chen@localhost~]$ grep chen /etc/group << - 查看用户组
chen:x:1000:       << - 用户组无附加用户

在这里插入图片描述
验证yang用户能否读写文件。

[chen@localhost~]$ su - yang <<- 临时切换用户
[yang@localhost~]$ ls -l /home/chen/wen1
Is : cannot access /home/chen/wen1 : Permission denied
<< - 不允许访问

【例2】更改/home/chen/wen1文件,/home/chen/wen2文件的所属组为hrbeu,并查看用户组hrbeu下所有的用户。

[chen@localhost~]$ chgrp chen ./wen1 ./wen2 <<- 更改所属组
[chen@localhost~]$ ls -l ./wen1 ./wen2 <<- 查询文件属性
-rw-rw-r-- .1 chen hrbeu 0 Mar  11 00:08 ./wen1
-rw-rw-r-- .1 chen hrbeu 0 Mar  11 00:08 ./wen2
[chen@localhost~]$ grep hrbeu /etc/group << - 查看用户组
hrbeu:x:1002:chen yang       << - 用户组无附加用户

在这里插入图片描述

验证yang用户能否读写文件。

[chen@localhost~]$ su - yang <<- 临时切换用户
[yang@localhost~]$ ls -l /home/chen/wen1
Is : cannot access /home/chen/wen1 : Permission denied
<< - 不允许访问

在这里插入图片描述
明明yang用户属于hrbeu用户组,为什么依然没有权限查看文件/home/chen/wen呢?为什么会这样呢?
我们查看一下 /home/chen文件的权限

[chen@localhost~]$ ls -l /home
drwx------  << - 仅文件所有者对其有读写执行权限

在这里插入图片描述

3 Linux chown命令:修改文件所有者

chown(change onwer)命令,主要用于修改文件的所有者,除此之外,这个命令还可以修改文件所属组,但是修改所属组命令最常用的是chgrp命令,因此并不推荐大家这里的方式。
chown命令的基本格式如下:

[chen@localhost~]$ chown [option] username filename
选项作用
-R递归修改

在这里插入图片描述

Linux系统中,用户等级权限的划分非常清楚,root用户拥有最高权限,可以修改任何文件的权限;而普通用户只能修改自己文件(所有者是自己的文件)的权限

【例】修改/home/chen/下的所有文件的所有者为用户yang

[chen@localhost~]$ su -  << - 切换为root用户
[root@localhost ~]# chown -R yang /home/chen << - 修改
[root@localhost ~]# ls -l /home/  <<- 查询

在这里插入图片描述
验证yang用户的权限。
在这里插入图片描述

4 Linux 权限位

Linux系统,最常见的文件权限有3种,即对文件的读(r),写(w),和执行(x)权限。在Linux系统中,每个文件都明确规定了不同身份用户的访问权限,通过ls命令可以看到。

除此之外,我们有时会看到s(针对可执行文件或目录,在文件执行阶段,临时拥有文件所有者的权限)和 t (针对目录,任何用户都可以在此目录中创建文件,但只能删除自己的文件),文件设置s和t权限,会占用x权限的位置

例如,我们以root身份登陆Linux,并执行以下指令:

[root@localhost~]# ls -al

在这里插入图片描述
可以看到,每行的第一列表示的是各文件针对不同用户设定的权限,一共11位(第1位用于表示文件的类型,第11位为此文件受SELinux的安全规则管理),因为,文件设定不同用户的权限仅涉及到9位字符。
3位针对文件所有者;中3位针对文件所属组;后3位针对其他用户。

Linux系统中,多数文件的所有者和所有组都是root,这也就是为什么,root用户是超级管理员,权限足够大的原因。

5 Linux 读写执行权限真正含义

通过前面的学习,我们知道了给文件设定权限的重要性,那么读写执行权限到底指的是什么呢?
首先要说明,这些权限并没有表面上那么简单,甚至同一权限对文件和目录的含义也不尽相同。

5.1 rwx 权限对文件的作用

权限含义
读权限表示可读取此文件中的实际内容,例如,可以对文件执行catmorelessheadtail等文件查找命令
写权限表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行vimechoawk等修改文件数据的命令。注意,无权限不赋予用户删除文件的权限,除非用户对文件的上级目录具有写权限才可以
执行权限表示该文件具有被系统执行的权限。Window系统中查看一个文件是否为执行文件是通过扩展名(.exe.bat等),但Linux系统,文件能否被执行,是通过看文件是否具有执行权限来决定的。但是,文件到底能够正确执行吗?还要看文件中的代码是否正确

对于文件来说,执行权限是最高的权限。给用户或用户组设定权限时,是否赋予执行权限要慎重考虑,否则会对系统安装造成严重影响。

5.2 rwx权限对目录的作用

权限含义
读权限表示具有读取目录结构列表的权限,也就是说,可以看到目录中有哪些子目录和子文件。一旦对目录具有读权限,就可以在此目录下执行ls命令,查看目录中的内容
写权限对于目录而言,写权限是最高的权限。对目录具有写权限,表示可以对目录做以下操作:①在此目录中创建新的子目录或子文件(新建);②删除已经存在的文件或目录(删除);③对已存在的文件或目录做修改操作(修改);④移动此目录下的文件和目录的位置(移动)。一旦对目录具有写权限,就可以执行touchrmcpmv等命令。
执行权限目录是不能直接运行的,对目录赋予执行权限,代表用户可以进入目录,也就是说,赋予执行权限的用户或用户组可以使用cd命令

对目录来说,如果只赋予读权限,此目录是无法使用的。很简单,只有读权限的目录,用户只能查看用户内容,根本无法进入目录,更不用说使用了。
因此,对目录而言,通常权限只有0(---)、5(r-x)、7(rwx)种。

6 Linux chmod命令:修改文件权限

我们既然已经知道了文件权限对于一个系统的重要性,也知道每个文件都设定了针对不同用户的访问权限,那么,是否可以手动修改文件的访问权限呢?
可以,通过chmod命令。chmod命令设定文件权限的方式有两种,分别可以使用权限值或者符号来进行权限的变更。

6.1 chmod 权限值方式修改文件权限

在Linux系统中,文件的基本权限由9个位构成。

权限权限值
r4
w2
x1

rwxrw-r-x来说,所有者、所属组和其他人的权限值为:

  • 所有者=rwx=4+2+1=7
  • 所属组=rw-=4+2=6
  • 其他=r-x=4+1=5

所以,此权限对应的权限值就是765

chmod命令的基本格式如下:

[root@localhost~]# chmod [option] 权限值 filename
选项作用
-R递归修改

【例1】修改/home/chen/wen1文件的权限为rwxrwxrwx

[root@localhost~]# ls -l /home/chen/wen1 <<-查询文件权限
[root@localhost~]# chmod 777 /home/chen/wen1 << - 修改文件权限
[root@localhost~]# ls -l /home/chen/wen1 <<-查询文件权限

在这里插入图片描述

6.1 chmod 字符方式修改文件权限

既然文件的基本权限就是3种用户身份搭配3种权限。chmod命令中用ugo分别代表3种身份,还用a代表全部身份。另外,chmod命令仍然使用rwx分别表示3种权限。
在这里插入图片描述
【例2】修改/home/chen/wen1文件的权限为rw-rw-r--

[root@localhost~]# ls -l /home/chen/wen1 <<-查询文件权限
[root@localhost~]# chmod ug=rw,o=r /home/chen/wen1 << - 修改文件权限
[root@localhost~]# ls -l /home/chen/wen1 <<-查询文件权限

在这里插入图片描述

7 Linux umask:默认权限

Linux是注重安全性的操作系统,而安全的基础在于对权限的设定,不仅所有已存在的文件和目录要设定必要的权限,创建新的文件和目录时,也要设定必要的权限。
Windows系统中,新建文件和目录时通过继承上级目录的权限而获得初始权限,而Linux不同,它是通过使用umask默认权限来给所有新建的文件和目录赋予初始权限的。
那么,如何得到umask的默认权限值呢?直接通过umask命令即可:

[root@localhost~]# umask   << - root用户
0022
[root@localhost~]# su - chen << - chen用户
[chen@localhost~]$ umask
0002

在这里插入图片描述

root用户的默认权限是0022;普通用户的默认权限是0002

读者可能会问,不应该只有3个数字吗?(分别对应3种身份吗?)为什么会有4个数字?umask默认权限的确由4个八进制数字组成,但第1个数字代表的是文件具有的特殊权限(SetUIDSetGIDSticky BIT)。而后3位则是文件对应的所有者、所属组、其他人的默认权限。022对应----w--w-002对应-------w-

注意,虽然umask默认权限是用来设定文件或目录的初始权限,但并不是将umask默认权限直接作为文件或目录的初始权限,还要对其进行“加工”

文件和目录的真正初始权限,可通过以下方式计算:

文件或目录的初始权限=文件或目录的最大默认权限 - umask权限

如果按照官方的标准算法,需要将umask默认权限使用二进制并经过逻辑与和逻辑非运算后,才能得到最终文件和目录的初始权限,计算过程比较复杂,且容易出错,所以介绍了这种更简单的计算方式。

显然,如果想要最终得到文件或目录的初始权限,我们还需了解文件和目录的最大默认权限。在Linux系统中,文件和目录的最大默认权限是不同的:

  • 文件,其可拥有的最大默认权限是666,即rw-rw-rw-。也就是说,使用文件的任何用户都没有执行(x)权限。原因很简单,执行权限是文件的最高权限,赋予时要绝对慎重,因此只能用户手工赋予。
  • 目录,其可拥有的最大默认权限是777,即rwxrwxrwx

对于root用户umask0022而言:

  • 文件的初始权限:rw-rw-rw- - ----w--w- = rw-r--r--
  • 目录的初始权限:rwxrwxrwx - ----w--w- = rwxr-xr-x
    在这里插入图片描述
    对于chen用户0002而言:
  • 文件的初始权限:rw-rw-rw- - -------w- = rw-rw-r--
  • 目录的初始权限:rwxrwxrwx - -------w- = rwxrwxr-x
    在这里插入图片描述

8 Linux ACL:访问控制权限

Linux系统传统的权限控制方式,无非是用3种身份(文件所有者、文件所有组、其他用户),并分别搭配3种权限(读、写、执行)。比如,我们使用ls -l 命令查看当前目录中所有文件的详细信息。

[chen@localhost~]$ ls -l

在这里插入图片描述
以上输出信息中:

  • 对于./my目录而言,chen用户对其有rwx权限,chen用户组对其有rwx权限,其他用户对其有rx权限
  • 对于./wen1文件而言,chen用户对其有rw权限,chen用户组对其有rw权限,其他用户对其有r权限

但在实际值中,以上这3种身份根本不够用,给大家举个例子:
在这里插入图片描述
根目录中有一个/project目录,这是班级的项目目录。班级中的每个同学都可以访问和修改这个目录,老师需要拥有对该目录的最高权限,其他班级的同学当然不能访问这个目录。
需 要怎么规划这个目录的权限呢?老师使用root用户,作为这个目录的属主,权限为rwx;班级所有学生都加入tgroup组,使tgroup组作为这个目录的属组,权限为rwx;其他人的权限设定为---。这样一来,访问此目录的权限就符合我们的要求了。
有一天,班里来了一个同学st,他必须能够访问/project目录,所以必须对该目录拥有rx权限;但是他没有学习过以前的课程,所以不能赋予他w权限,怕他改错了目录中的内容,所以st学生的权限应该是r-x。可是如何分配她的身份呢?
变为属主?肯定不行;加入tgroup组?肯定不行;将文件其他人权限改为r-x?肯定也不行。显然,普通权限的3种身份不够用了,无法实现对某个单独的用户设定访问权限,这种情况下,就需要使用ACL访问控制权限。

ACL,是Access Control List(访问控制列表)的缩写,在Linux系统中,ACL可实现对单一用户设定访问文件的权限。也可以这么说,设定文件的访问权限,除了使用传统方式(3对3),还可以使用ACL进行设定。以st同学为例,既然赋予他传统的3种身份无法解决问题,就可以考虑使用ACL权限控制的方式,直接对st用户设定访问文件的r-x权限。

ACL权限不是针对某个文件或某个目录的,它是针对分区而言的

9 Linux ACL权限设置

设定ACL权限,常用的命令有2个,分别是setfaclgetfacl命令,前者用于设定ACL权限,后者用于查看是否配置成功。

getfacl命令用于查看文件或目录当前设定的ACL权限配置信息,该命令的基本格式为:

[root@localhost~]# getfacl filename

setfacl命令可直接设定用户或群组对指定文件的访问权限。此命令的基本格式如下:

[root@localhost~]# setfacl [option] filename
选项作用
-m script设定指定ACL权限。如果给予用户ACL权限,则script = u:user_name:limit ;如果给予用户组ACL权限,则scripe = g:group_name:limit【例1、2】
-x script删除指定ACL权限。如果删除用户ACL权限,则script = u:user_name;如果删除用户组ACL权限,则script = g:group_name【例3】
-b删除全部ACL权限【例4】
-R递归设定/删除ACL权限。【例5】
d设定默认ACL权限。如果给予用户默认ACL权限,则script = d:u:user_name:limit;如果给予用户组默认ACL权限,则script=d:g:group_name:limit。针对在filename目录下建立的新文件或新目录。例【6】
-k删除默认权限【例7】

【例1】赋予yang用户对/home/chen/目录的rwx权限。

ctrl + alt + f3
[yang@localhost~]$ ls /home/chen  << - 查询yang用户对文件的权限
Is:can not open directory /home/chen:Permission denied
ctrl + alt + f2
[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
[chen@localhost~]$ setfacl -m u:yang:rwx /home/chen
<< - 配置文件的ACL权限
[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
ctrl + alt + f3
[yang@localhost~]$ ls /home/chen  << - 查询yang用户对文件的权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【例2】赋予hrbeu用户组对/home/chen/目录的rw权限。

[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
[chen@localhost~]$ setfacl -m g:hrbeu:rwx /home/chen
<< - 配置文件的ACL权限
[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息

在这里插入图片描述
【例3】在例1和例2基础上删除用户yang和用户组hrbeu/home/chen的相应ACL权限。

[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
[chen@localhost~]$ setfacl -x u:yang /home/chen
[chen@localhost~]$ setfacl -x g:hrbeu /home/chen
[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息

在这里插入图片描述
【例4】在例1和例2基础上删除所有的ACL权限。

[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
[chen@localhost~]$ setfacl -b /home/chen
[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息

在这里插入图片描述
【例5】对用户yang赋予/home/chen目录及其子目录、子文件的rw属性。

[chen@localhost~]$ getfacl /home/chen << - 查询文件ACL配置信息
[chen@localhost~]$ setfacl -Rm u:yang:rw /home/chen
[chen@localhost~]$ getfacl /home/chen/* <<- 查询文件ACL配置信息

在这里插入图片描述
【例6】赋予用户yang针对/home/chen目录的默认ACL权限为rw

[chen@localhost~]$ setfacl -m d:u:yang:rw /home/chen
[chen@localhost~]$ mdfir ceshi  << - 新建子目录
[chen@localhost~]$ touche cesh  << - 新建子文件
[chen@localhost~]$ getfacl ./ceshi ./cesh  << - 验证

在这里插入图片描述
【例7】删除用户yang针对/home/chen目录的默认ACL权限。

[chen@localhost~]$ setfacl -k /home/chen

若在权限位后面多了一个加号+,则表示此文件具有ACL权限

在这里插入图片描述

10 Linux mask:有效权限

在这里插入图片描述
设定ACL权限后,yang/home/chen文件(目录也是文件)具有rw权限,此外,还有一行mask:rwx
mask权限,指的是用户或用户组所能拥有的最大ACL权限,也就是说,给用户或用户组设定的ACL权限不能超过mask规定的权限范围,超出部分会做无效处理。
举个例子,如果像上个命令,给yang用户rwx权限,此时并不能说明yang用户就拥有了对该文件(目录)的读写执行权限,还需要与mask权限对比,rwx确实在mask:rwx范围内,此时才能说明赋予yang用户的权限是有效的。

不过我们一般不更改mask权限,只要赋予mask最大权限(rwx),则给用户和用户组设定的ACL权限本身就是有效的

11 Linux SetUID:文件特殊权限

其实,除了rwx权限位,有时还会用到s权限位。

[root@localhost~]# ls -l /usr/bin/passws
-rwsr-xr-x.

在这里插入图片描述
可以看到,原本表示文件所有者权限位中的x权限,却出现了s权限位,这种权限通常称为SetUID,简称SUID特殊权限。

SUID特殊权限仅适用于可执行文件,所具有的功能是,只要用户对设有SUID的文件有执行权限,那么当用户执行此文件时,会以文件所有者的身份去执行此文件,一旦文件执行结束,身份的切换也随之消失。

举一个例子,我们都知道Linux系统中所有用户的密码数据都记录在/etc/shadow文件中,通过ls -l etc/shadow命令可以看到,此文件的权限是0,也就是说,普通用户对此文件没有任何操作权限。
这样会产生一个问题,为什么普通用户可以使用passwd命令修改自己的密码呢?
本节开头已经显示了passwd命令的权限配置,可以看到,此命令拥有SUID特殊权限,而且其他人对此文件也有执行权限,这就意味着,任何一个用户都可以使用root身份去执行passwd命令。

Linux系统中,对大多数命令的文件所有者都是root

换句话说,当普通用户使用passwd命令尝试修改自己的密码时,实际上是以root身份去执行passwd命令,正因为root用户可以将密码写入/etc/shadow文件,所以普通用户也能做到。

如果我们手动将/usr/bin/passwd文件的SUID权限取消,会发生什么呢?

[root@localhost~]# ls -l /usr/bin/passwd
[root@localhost~]# chmod u-s /usr/bin/passwd
[root@localhost~]# ls -l /usr/bin/passwd
ctrl + alt + F3
[yang@localhost~]# passwd

在这里插入图片描述
在这里插入图片描述
显然,虽然用户具有执行passwd命令的权限,但是没有修改/etc/shadow文件的权限,因此最终密码修改失败。
在这里插入图片描述
由此,我们得出,SUID特殊权限具有以下特点:

  • 只有可执行文件才能设定SUID权限,对目录设定SUID,是无效的
  • 用户要对可执行文件具有执行权限
  • 用户在执行该文件时,会以文件所有者身份执行
  • SUID权限只在文件执行过程中有效,一旦执行完毕,身份的切换也随之消失

12 Linux SetGID:文件特殊权限

既然已经知晓了SUID,那么什么是SetGID(SGID)呢?很简单,当s权限位出现在所属组的x权限位时,就被称为SGID特殊权限。

[root@localhost~]# ls -l /usr/bin/locate
-rwx--s--x

在这里插入图片描述

与SUID不同,SGID既可以对文件配置,又可以对目录配置

12.1 SGID对文件的作用

SUID相似,对于文件而言,SGID具有以下特点:

  • SGID仅针对可执行文件
  • 用户需要对此执行文件具有执行权限
  • 用户在执行可执行文件时,用户的组群身份会变为文件所属组身份
  • SGID切换身份效果仅在执行文件运行过程中有效

其实,SUID和SGID的不同之处就在于,SUID赋予用户的是文件属主的权限,而SGID赋予用户的是文件属组的权限

12.2 SGID对目录的作用

事实上,SGID也能作用于目录,且这种用法很常见。
当一个目录被赋予SGID权限后,进入此目录的普通用户,其有效群组会变为该目录的所属组,就会使得用户在创建文件(目录)时,该文件(目录)的所属组将不再是用户的所属组,而使用的是目录的所属组。
也就是说,只有当普通用户对具有SGID权限的目录有rwx权限时,SGID的功能才能发挥作用。比如说,如果用户对该目录仅有rx权限,则用户进入此目录后,虽然其有效群组变为此目录的所属组,但由于没有x权限,用户无法在目录中创建文件和目录,SGID权限也就无法发挥它的作用。

13 Linux Stick BIT:文件特殊权限

Sticky BIT,简称SBIT特殊权限,可意为防删除位。
SBIT权限仅对目录有效,一旦目录设定了SBIT权限,则用户在此目录下创建的文件或目录,就只有自己和root才有权利修改或删除该文件。
比如,Linux系统中,存储临时文件的/tmp目录就设定有SBIT权限。

[root@localhost~]# ls -ld /tmp
drwxrwxrwt

在这里插入图片描述

crtl + atl + F3
[chen@localhost~]$ cd /tmp
[chen@localhost~]$ touch test_chen
crtl + alt + F4
[yang@localhost~]$ cd /tmp
[yang@localhost~]$ rm chen_test
rm:cannot remove

在这里插入图片描述

文件或目录:属主、属组、其他人(rwx权限);
文件或目录:指定用户、指定用户组(ACL权限);
可执行文件:身份切换(普通用户-属主)(SUID)
可执行文件:身份切换(普通用户-属组)(SGID)
目录:类似于银行保险柜(SBIT)

14 Linux chattr命令:修改文件隐藏属性

管理Linux系统中的文件和目录,除了可以设定普通权限和特殊权限外,还可以利用文件和目录的一些隐藏属性。
chattr命令,用来修改文件或目录的隐藏属性,只有root用户可以使用,命令基本格式为:

[root@localhost~]# chattr [+-=] [option] filename
选项作用
i如果对文件设置:不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置:只能修改目录下文件的数据,但不允许建立和删除文件
a如果对文件设置:只能在文件中增加数据,不允许删除和修改数据;如果对目录设置:只能在目录中建立和修改文件,不允许删除文件
u设置此属性的文件和目录,在删除时,其内容会保存,以保证后期能够恢复,常常用来防止意外删除文件和目录
su相反,删除文件和目录时,会被彻底删除(从硬盘上删除),不可恢复

chattr作出的隐藏属性设置,对root用户有限制

【例1】给/home/chen/wen1文件添加i属性。

[root@localhost chen]# chattr +i wen1  << - 添加属性
[root@localhost chen]# rm wen1   << - 移除文件
rm:remove regular empty file "wen1"? y  << - 无法移除
rm:cannot remove'wen1':Operation not permitted  

在这里插入图片描述
【例2】给/home/chen/my目录添加i属性。

[root@localhost chen]# chattr +i /home/chen/my  << - 添加属性
[root@localhost chen]# cd /home/chen/my
[root@localhost chen]# touch test
touch:cannot touch 'test':Permission denied << - 无法新建
[root@localhost chen]# rm test.txt
rm:remove regular file "test1.txt"? y  << - 无法移除
rm:cannot remove'test1.txt':  Permission denied 

在这里插入图片描述在这里插入图片描述

15 Linux lsattr命令:显示文件隐藏属性

lsattr命令的基本格式如下:

[root@localhost~]# lsattr [option] filename
选项作用
-a会显示所有文件和目录(包括隐藏文件)
-d如果目标是目录,只会列出目录本身的隐藏属性
-R如果目标是目录,会连通子目录的隐藏属性一起列出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16 Linux sudo命令:系统权限管理

我们知道,使用su命令可以让普通用户切换到root身份去执行某些特权命令,但存在一些问题,比如说:

  • 仅仅为了一个特权操作就直接赋予普通用户控制系统的完整权限
  • 当多人使用同一台主机时,如果大家都要使用su命令切换到root身份,那势必就需要root的密码,这就导致很多人都知道root密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值