您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

Linux权限解析

时间:2022-09-05 13:49:52  来源:51CTO  作者:玄鸟轩墨

写在前面

可以说,我们基本指令的那部分内容已经完了,下面需要开始我们新的篇章,权限.权限可能就这一篇博客,内容倒不多,关键是要我们理解,理解是很重要的,下面让我们来开式正式的内容吧.

shell命令以及运行原理

严格来说,linux是一个一个操作系统,我们称之为“核心(kernel)",但是我们一般不直接操着这个核心,而是通过一个外壳,也就shell,这是一个种类,包括我们现在使用的额XShell,那么我们在想,为什么我们不可以直接操作这个kernel呢?使用shell有什么好处呢?着都是需要我们考虑的.

从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

将使用者的命令翻译给核心(kernel)处理

同时,将核心的处理结果翻译给使用者

这个大家看到可能感到有点抽象,不用担心,这里我用一个例子和大家解释.

这里有一个程序员叫做张三,一天他感到有点孤独,想结婚了,张三有一个心上人,就是隔壁的如花.张三一直喜欢这个如花,但是那张三有点社恐,害羞的不敢表达出来.恰巧他们村里有一个媒婆,王婆.这一天张三告诉王婆:"王婆大娘,我这想结婚了,喜欢我隔壁的如花,想让你帮忙说说,到时候喜酒一定不会少的".王婆一听,来生意了,随即去找了这个如花.告诉如花:"如花啊,这有一门婚事想和你说说,你知道张三不,这个有工作了,人品还是不错的的,他托我想找一门婚事,从小就喜欢你了,你觉得他怎么样".如花心里想,张三是哪个?想了一会,才知道就是那个小时候跟在我屁股后面的那个,他是一个好人,而且我也有男朋友了.如花婉拒了,告诉王婆,我有男朋友了.王婆一听就知道这事成不了,回去告诉张三.但是过几天张三还是放不下,又找王婆,还是想找如花.王婆一听,就说我们立马再去一趟.王婆出门转了一圈,连如花都没出找,回去说,张三如花她有男朋友了,我再给你说一门吧,长得很是水灵.

这个故事就可以告诉我们shell的作用.

可以这么说张三就是我们这个普通用户,如花就是Linux核心,而王婆就是shell.

但张三请王婆说媒事,就是向核心发送请求,如花想了想张三是谁,就是解析指令,说不同意就是拒绝请求.张三不死心,再一次请求,王婆知道这事没戏,直接自己拒绝了请求.

Linux用户的分类

在用户上会被分为两类用户,windows环境下也是一样的.

普通用户 多个 权限受限制

root 只有一个 用于最高权限

这里就不谈如何创建普通用户了,在这个系列最开始就分享了过了.

whoami 指令

这个指令是查看但当前用户.

[bit@Qkj ~]$ whoami

如何进入root用户

我们在普通用户这里,可以直接使用指令和root密码来进入root用户.

[bit@Qkj ~]$ su -

输入root密码,记住root密码最好不要和普通用户的密码一样.

如何退出root用户

直接使用热键ctrl+d

su 指令

我们这里一个su指令,这个可以切换我们的用户,上面我们也看到了切换到root用户,这里的**-**就是超级用户的代表,要是我们从一个普通用户切换到另一个普通用户该怎么做.

直接su+用户名,你会发现,他要你输入密码,输入你想进的用户密码就可以了

[bit@Qkj ~]$ su qkj

这里就有一个问题了,要是你不知道这个用户密码该怎么办,这里还有一招,我们可以先进root,在直接切换,不用密码.

[bit@Qkj ~]$ su -

文件

大家先看一下这张图片,后面我们几乎所有的知识都是围绕这个图片来展开的,可以说重中之重.

文件是什么

在Linux中,文件包含两个部分的内容,一个事文件属性,另一个事文件内容.这里文件内容就不用说了,谈谈属性.

所谓的属性可以理解为文件的一些信息,在这张图上体现为下面.

我们需要理解一下这个些东西

文件类型

开门见山,这里我们提供几个文件的类型,有的可以不用记,后面用到的时候就会知道了.

- 普通文件, 文本 , 源代码, 可执行程序,第三方动态库

d 目录文件

l 链接文件

p 管道文件

b 块设备文件,磁盘

c 字符设备文件

上面看到了什么文件类型,我们不由得疑惑,一个-也可以作为一个文件类型,这事怎么回事,这里要和大家说一个理念,**在Linux中,我们不以文件的后缀来区分文件的类型.**这个理念十分的重要.我们来证实一下.

我们把可执行程序修改一下文件的后缀发现人就可以执行,这是就可以证实了.

那么这里我们就开始疑惑了,既然Linux环境下不区分后缀,我们事不是可以使用gcc编译.txt文件,我们试一试后发现,这是不允许的,这就让我们感到疑惑了.实际上,是可以理解的,Linux不区分,但是gcc这个编译器是会区分的,你不能那前朝的剑斩本朝的官吧.

权限

我们前面看到文件的权限,那么请问这个都是什么玩意,我这一点都看不懂,不要着急,我们会一一解释的.

什么是权限

我们需要先认识一下究竟什么是权限.这是一切的基础.

我们都知道,在学校里面考试,学生只有考试的资格,他绝对没有资格去修改自己的成绩,否则就乱套了,-这就是权限的作用.我们还知道在QQ中,有禁言的功能,但是一个普通群成员是不能禁言的,这是权限的魅力.我们来看看吧.

权限本质上是约束一个人可以做什么,不可以做什么.这里我还要提一个场景,权限的存在还需要环境,你想去一个博客网站去看电视剧,这可能吗?所以说权限存在下面的要求.

约束人的

权限对应事物需要有相应的属性

所谓的权限就是 人 + 属性

我们Linux上学的是对文件的权限,我们按照上面来套套.

文件谁能"访问",谁不能访问?文件应该具有某种属性,比如说可读(r),可写(w),可执行(x)...属性.

Linux下人的分类

既然权限包含了人,那么Linux系统下有哪些人呢?Linux下人分三类.

文件所有者 owner

文件的所属组 grouper

文件的其他用户 other

我们需要理解一下这个分类,我们可以接受一个文件不属于自己肯定属于其他人,那这个文件的所属组是怎么理解的?实际上我们可以这么理解,你写的程序很大,独自一个人是不可能完成的,这时候你会和其他人组队,那么你会把自己的写的文件放给其他的队员来观看,这就是文件的所属组,这样可以好理解一点.

权限格式

我们既然知道了Linux下人的分类,下面的图片就有可以谈的了.

这样你就可以发现文件权限的格式,这里我们把前面9个字符三三分组,而且每一组的每一个位置都是确定的

第一组 代表owner 权限

第二组 代表grouper权限

第三组 代表other权限

后面跟着的一次式文件所有者和文件所属组,我们可以想到,如果人不属于这两种,那么一定就是other,这里没有什么好说的.

权限属性

文件的权限属性有四个,但是这里我和大家谈三种

r 可读 只能在第一个,否则就是 - 不可读

w 可写 只能在第二个 ,否则就是 - 不可写

x 可执行 只能在第三个,否则就是 - 不可执行

我们先来谈谈这个图片的认识.

owner 是 bit 权限是 rw- 也就是 可读(r),可写(w),不可执行(-)

grouper 是 bit 权限是 rw- 也就是 可读(r),可写(w),不可执行(-)

other 是 非bit,权限是 r-- 也就是 可读(r),不可写(-),不可执行(-)

修改文件权限

修改文件的权限总体来说分为两类,可以这么说,我们可以修改所有者的权限和修改所有者.我么一次来说.

修改文件权限

我们可以使用chmod指令来修改所有者的权限.

我们可以知道,用u代表owner,g代表grouper,o代表other,+号表示添加权限,-表示去掉权限.

修改owner chmod u+r file.txt

修改grouper chmod g+x file.txt

修改other chmod o-r file.txt

下面就是去掉owner的读权限.

[bit@Qkj 07_05]$ chmod u-r file.txt

我们可以通过一次增加所有者多个权限.

可以一次修改多个拥有者的权限.

这里我就要提一个问题了,我们对文件加上某个权限,那么这个文件一定可以这么做吗?是不可以的,下面我们对.txt文件加上可执行,实际上,还是不能执行.

使用八进制

我们都知道在计算机中1代表正确,0代表错误,那么我们是不是可以用0和1来表示自己想要修改文件所有者的权限.而且所有者权限的位置都是固定的,每一组也是,这就可以用八进制来表示如何修改权限.

例如rwx = 111 => 7,-wx = 011 => 3,我们可以通过八进制来修改.

我们可以把777分为 111 111 111依次按位置对象相应的权限位置.

[bit@Qkj 07_05]$ chmod 777 file.txt

对应的权限列表

修改文件的所有者

我们可以修改文件的拥有者和文件的所属组,这两个是不同的指令,我们分开来谈.但是这里需要知道我们要修该的拥有者和所属组都是在Linux环境下存在的,不能给那些不存咋的用户.

修改文件的拥有者

这个很简单,只需要一个简单的指令就可以了.

这个就是把该文件的拥有者改成了root

[bit@Qkj 07_05]$ chown root file.txt

但你一执行这条命令,你会发现报错.

那么这是为什么呢?我这里给大家讲一个故事,一天,你把你的玩具给你弟弟,但是你弟弟死活不要,请问你该怎么办?这就是我们现在的处境,我把文件给了其他人,但是他不要.这时候你就想了个主意,我可叫我妈过来,强压着我弟弟接受这个礼物,在Linux中也是如此,我们可以提高权限,我这里使用的sudo,你的服务器可能还没配置,可以在root用户下强压,道理都一样.

[qkj@Qkj linux]$ sudo chown root file.txt

但是你要记住,一旦你把文件给了别人,你就可可能拥有grouper或者other的权限了,这里我们没必要在列出这个具体的解释了.

修改文件的所属组

这个是我们权限修改的最后一个内容,内容很上面的一样在,这里我就不解释了.

[qkj@Qkj linux]$ sudo chgrp root test.c

这里有一个很重要的东西,你可以一次性修改文件的拥有者和所属组,使用下面的命令

[qkj@Qkj linux]$ sudo chown root:root test.c

[qkj@Qkj linux]$ sudo chown root:bit test.c

目录权限的特别

我们想来谈谈目录这种文件,对于一般文件,上面的很简单,但是对于目录文件我们存在下面的几个疑惑.

可读 是什么意思

可写 什么意思

可执行 是什么意思

可执行

这是我们的三个问题,这里我们先从第三个来谈,目录的可执行是什么意思呢?这个是保证该目录文件时候可以进入.

我们想来把目录的rw都个去除掉,只保留x

[bit@Qkj 07_05]$ chmod u-wr lesson1

这时候我们进入这个目录试试.

你会发现可以进入,但是你要是去除了这个x呢?

可写

在目录文件里面,可写的权限是是可以创建文件.

可读

可读是我们进入后不能够查看当前目录下的文件.

那么这里有一个问题,如果我们知道文件名的,我们是否可以查看当前目录下文件的内容?按道理来说,这是不允许的,毕竟我们都知道文件的路径就像一个吊桥,一段出错,就不可以,我们已经把可读的权限给关了,按理说是不应该的,但是现实是可以的,我们可以理解这是Linux下的一个"bug",记住我们的理解是正确的.

root 权限

我们都知道root是拥有最高的权限,那么相对于一个普通用户创建的文件,root属于other,那么这个权限可以阻碍掉root用户吗?我们来看看现象.

我们把所有的权限都给它撤了,看看root可以吗.

chmod u-rwx,g-rwx,o-rwx file.txt

我们切换到root用户,然后去找到该文件所在的目录,你会发现,即使上面写着你没有权限,但是你仍旧可可以完成你要的工作,root可以说是掌管一切,操纵一切.

我们疑惑为什么文件创建权限的是默认的,而且为何被默认了?这有两个原因

默认 目录的权限是从 777 开始的,普通文件是从666开始

Linux下有一个权限掩码 umask

权限掩码

我们来看Linux环境下的权限掩码,最左边的我们不关心,我们把它看成三个8进制,第一个0先不关心,这个另外的知识.

Linux下规定,凡是在权限掩码出现的1在默认的权限中不出现,这就是775和664的来历.

最终权限是默认的权限减去权限掩码吗

我们这里开始疑惑了,最终权限是默认的权限减去权限掩码吗?我看得到775的结果和减去差不多啊,这里究竟是不是啊?我可以明确告诉你不是.用777这个默认目录权限验证不出来,这里用普通文件的666来演示.

你会发现,这不是一样的吗,是的,这是一个特例,如果我们修改一下umask,你就会发现减法是不对的.

修改 umask

这个倒是挺简单的, umask后面跟上我们想要的数字就可以了.

这样的话我们需要在计算一下,看看文件最终的权限是减法的还是权限掩码出现的1在默认的权限中不出现这个规则.

通过验证就可以知道了,编译器可不是使用的减法.

为何会有权限掩码

这个问题问得好,为何会存在权限掩码?大家想一个场景,你要创建一批特殊权限的文件,你不会一个一个再修改默认的权限吧,这太麻烦了,只要修改出你想的的权限掩码,这样编译器创建的文件最终权限不就是你想要的吗,这就是原因.

粘滞位

大家不要对粘滞位感到疑惑,这就是一个简单的名称.

共享目录

在谈这个之前,我们想来看看一个例子.在现实生活中,我们是不是存在论坛,来自天涯各地的人都可以在这里讨论,我们想在Linux中,是不是可以存在一个目录文件,这个在这个目录文件可以被其他任何人访问,修改等操作,我们用所有者和所属组是root,other可以进行创建修改和查看来演示.

我们用普通用户进入去看看,在理里面我们可以创建删除和修改文件,那么我们已经做好了准备工作.

粘滞位

在这个用户里面,我们也是可以观看其他用户创建的文件,只要是权限够就可以了,但是有一天,你发现自己的文件被别人随便的修改了心里面很恼,我把自己文件的权限给改了,不让其他人人修改和访问.

别人一看,好家伙,你不让我看,好大的胆子,我把你的文件给删了,咱们都别想好过.

这还的了,你删我的,我也把你的的删了,大家都别好过,最终就是两败俱伤.这时候我们需要做一个方法来杜绝这种事情的发生,我们给这个文件加上粘滞位,记住,这个为文件是这个公共的目录文件,大家不要搞错了.

[root@Qkj qkj]# chmod +t all

这样别人就不能删除你的文件了,只有你自己可以删除这个也是粘滞位的作用.

file 指令

虽说我们可以通过文件的前缀可以来查看文件类型,但是还是比较麻烦的,这里提供一个指令,可以查看文件的类型.

[bit@Qkj 07_24]$ file a.out

-----------------------------------

©著作权归作者所有:来自51CTO博客作者玄鸟轩墨的原创作品

https://blog.51cto.com/u_15132397/5624296



Tags:Linux权限   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Linux权限解析
写在前面可以说,我们基本指令的那部分内容已经完了,下面需要开始我们新的篇章,权限.权限可能就这一篇博客,内容倒不多,关键是要我们理解,理解是很重要的,下面让我们来开式正...【详细内容】
2022-09-05  Search: Linux权限  点击:(449)  评论:(0)  加入收藏
linux权限管理
Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位,为了保护系统的安全性,linux系统对于不同用户访问同一个文件或目录做了不同的访问控制。而这种控制就是通过权...【详细内容】
2021-05-13  Search: Linux权限  点击:(472)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(6)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(16)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(10)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(11)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(54)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(50)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(53)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(77)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(69)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(85)  评论:(0)  加入收藏
相关文章
站内最新
站内热门
站内头条