Linux权限

发布时间:2024年01月20日

前言:哈喽小伙伴们,前边的文章中我们已经介绍了过了Linux的一些基本操作指令,今天这篇文章,我们就在指令的基础上,讲解Linux操作的相关权限。


目录

一.什么是权限

二.Linux用户

三.文件权限

四.文件权限修改

1.文件操作权限修改

2.文件管理角色修改

五.文件夹权限

六.设置所属组

七.总结


在讲权限之前呢,我们要先来了解一下Linux指令到底是怎么运作的。

Linux的操作基本上分为三个部分:

  1. 用户
  2. shell(外壳)程序
  3. 内核操作系统

用户,也就是我们,要使用Linux的人

而shell程序,是连接用户和内核操作系统的命令行解释器,起到判别和检查的作用

内核操作系统,最终执行官,执行用户所提出的请求

那么我们平时在使用Linux的指令时,我们就是用户,而shell程序就是一个判官,判断我们给出的指令是否可用,如果可用就会传递给操作系统执行,然后再将执行结果返回给用户,反之则不能执行

借着这个引子,我们就开始来具体了解Linux权限。


一.什么是权限

所谓权限,也就是某些特定的东西具有某种限制,只对特定人群开放,而限制其他人使用

比如我们常用的各种视频,音乐VIP,学校门禁系统等等,只有满足条件的人才能有权利去使用。

从这里我们能够看出,权限和人有关,同时权限也和被限制的事物属性有关


二.Linux用户

Linux的用户分为两种:

  1. root(超级管理员)
  2. 其他(普通用户)

root是Linux的初始的默认管理员:

当我们调用whoami指令时,能够看出当前Linux的用户为root。

而其他用户则是我们需要创建的,创建用户的过程,就是将我们当前的Linux系统的使用权限开放给这个新的用户。关于用户的相关指令如下:

sudo adduser XXX? ? ? ? 创建新用户

sudo passwd XXX? ? ? ?? 给新用户设置密码

sudo userdel XXX? ? ? ? ?删除用户

su XXX? ? ? ? ???????????????????切换用户

su ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 切换回root

如上,我创建了一个名为zhansgan的用户。?


三.文件权限

现在我创建了一个文件名为test.txt,能够看出,在这个文件名的前边还有许多的信息:

  • ?-rw-rw-r--? ? ? ? ? ? 角色的权限
  • zhangsan(前)? 拥有者
  • zhangsan(后)? 所属组
  • 0? ? ? ? ? ? ? ? ? ? ? ? ? ?文件大小
  • Jan 19 16:35? ? ? ? 文件的创建时间

这些信息统称为文件的属性。?

总共能有三类角色能够对文件进行操作:?

文件都是被用户所创建的,所以每一个文件都会有拥有者,比如上边test.txt文件就是由zhangsan创建的,所以它的拥有者就是zhangsan

除此了拥有者之外,还有所属组和其他角色

为什么会有所属组呢?

因为一个文件可能要同时被多个用户去维护,所以有了所属组的概念,能够让文件能够被小组里的成员共同维护

那为什么文件名的前边没有其他成员的信息呢?

一般来说文件不会对所有人开放,当一个文件没有拥有者和所属组的时候,就表示对所有人开放

下面我们重点来看前十个字符:

-rw-rw-r--

其中第一个字符,代表文件的类型:

-? ? ? ? 普通文件

d? ? ? ?目录文件

剩余的九个字符,其中包括r、w、x三个字符,分别代表对文件的:读、写、可执行三种权限。

九个字符,每三个为一组,分别代表拥有者、所属组和其他角色对文件的三种操作权限拥有此权限,就会显示英文字符,反之显示“-”

比如对于上边的test.txt文件,其拥有者和所属组都拥有读和写的权限,而不具有执行文件的权限其他角色则不具备对此文件操作的任何权限


四.文件权限修改

1.文件操作权限修改

那么谁有资格去修改文件的权限呢

1.文件拥有者

2.root超级管理员

修改权限需要用到指令chmod

chmod + 要添加/删除的权限 + 文件名

这里还要记住三个点:

u(user)? ? ? ?拥有者

g(group)? ? ?所属组

o(other)? ? ? 其他角色

同样是这个文件,现在我要添加拥有者的可执行权限x

?如图所示,使用u+x,使可执行权限被添加,现在要删除拥有者的所有权限

如图所示, 使用u-rwx能够同时删除拥有者的所有权限

这说明这些指令都是可以连用的,比如我现在要删除所属组和其他角色的读权限,便可以:

此外,还有一种可以同时添加或删除权限的指令‘a’,也就是‘all’,现在给所有人添加读权限

?那么我们光学会了权限的修改,到底有没有用呢???接下来就来测试:

当前文件的拥有者拥有读写权限,所以我们进行读写:

?能够看出我们能够进行读写操作,现在把读写权限删除,在尝试进行读写:

?能够看出都报错了,这就说明就算你是文件的所有者,但是没有权限就依然无法操作文件

但是我们知道,root是超级管理员它能否在无权限的前提下操作文件呢???

现在是root超级管理员,因为该文件的拥有者和所属组都是zhangsan,所以root是其他角色

能够看出,root身为超级管理员,凌驾于一起权限之上,无需权限就能随意操作文件。?


除了上述修改方式之外,我们还可以用进制的方式来进行修改:

如果把三位权限看做是二进制的形式权限存在记为1,不存在记为0再把二进制转化为8进制,同样可以实现添加和删除权限。

例如:

此时我们的拥有者和所属组都具有读和写的权限,rw-就代表二进制的110转化为八进制就是6,如果我们想把所有的权限删除,全部都是---,则转化为8进制就是0,于是:

如果想要授予全部权限,则都为rwx,即111,八进制为7,于是:


2.文件管理角色修改

除了能够修改文件的操作权限之外,还可以修改文件的拥有者和所属组:

  • chown? ? ? ? 修改拥有者
  • chgrp? ? ? ? ?修改所属组

?值得注意的是,上述操作想要修改文件拥有者和所属组只能有root超级管理员能够执行,就算是文件的拥有者也无法修改

如果想要用普通用户去修改的话,则需要在指令的开头加上 su/sudosu/sudo能够将普通用户上升为超级管理员的地位


五.文件夹权限

上边我们讲了那么多,但其实都是关于单个文件权限的操作,那么对于文件夹,它的权限又是如何呢???

想要进入一个文件夹,需要的是r-读权限吗?

并不是,我们打开一个文件夹,实际意义上是执行了它,所以我们需要x-可执行权限

那么文件夹的r-读和w-写又代表什么意思呢???

?r权限:用户是否能够查看指定目录内的文件信息。

w权限:决定用户是否能在指定的目录内新建、删除、修改文件。


六.设置所属组

那么我们如何让文件的权限只对某些特定人开放呢???

首先,我们需要将对应的共享目录文件创建在root目录下,而不能创建在个人目录下。因为如果想在用户的个人目录下共享文件,就必须让该用户把文件夹的other权限开放,这样很容易造成私人信息损失。

所以我们要在root目录下共享文件,并且要把文件夹的other权限开放。但是如果other权限开放,那么无论是谁都可以访问此共享文件,不并能实现仅对某些小组成员开放,这该怎么处理呢???

实际上,在root目录下共享文件,并不能实现让某个其他角色不能进入目录去看文件或者修改文件,但是却可以阻止他去删除文件

这就要用到“粘滞位”这一名词了,将共享目录进行粘滞位处理,就可以保证其内部的文件只能由root超级管理员和文件的所有者删除,其他人则无法删除。

设置粘滞位指令为:

chmod +t XXX

如图,我们将text文件夹视为共享文件夹并设置粘滞位,这样就能够实现文件的真正共享啦。

?能够看到zhangsan是无法删除由root创建的文件


七.总结

关于Linux权限的简单基础知识到这里就结束啦,希望本篇文章能够对大家有所帮助。

喜欢博主文章的小伙伴们不要忘记一键三连哦,我们下期再见啦!

文章来源:https://blog.csdn.net/2303_78442132/article/details/135698616
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。