首页 > 系统相关 >【Linux之权限】理论篇

【Linux之权限】理论篇

时间:2024-11-17 11:46:04浏览次数:3  
标签:理论 sudo other 拥有者 Linux 权限 root 我们

前言

Linux的权限是我们学习Linux初期非常重要的基础知识,接下来我将通过一个系列【Linux之权限】,共三篇文章,对此进行较为全面和详细的解说。

sudo

情况:如果我们不是超级管理员,但是想执行一个权限级别比较高的指令,比如我们想以超级管理员的身份来创建一个文件,那么就:

sudo touch root.txt

然后会要求我们输入密码,注意这里要求我们输入的并不是root的密码,而是当前用户的密码。

可以看到,这里创建的文件的身份是属于root的。

所以

sudo是用来进行指令的短暂提权的。

那么,什么时候我们会有这种需求呢?

比如安装软件,我们之前用yum,本质是把自己对应的指令写入/usr/bin这样的目录下。

通过ls -ld /usr/bin我们可以看到的是:

这个文件是属于root的。

(普通用户时)所以不允许cp my.txt /usr/bin,所以我们也就没法安装。

所以我们就可以使用sudo来进行提权,sudo cp my.txt /usr/bin

所以当我们往一些不属于我们的目录里去安装、拷贝、删除、增加都需要sudo提权。

其实在linux中,我们安装的所有程序只安装了一份,只不过安装的这一份通常允许大家使用,比如ls,普通用户和root都能使用。

一般指令都是普通用户也能用,但是像adduser这样的,普通用户肯定用不了。

人人都是root?

有一个疑问是,sudo时我们输入当前用户密码而非root密码,这难道说明人人都是root吗?

但其实,如果现在我们真的sudo ls,会发现输完密码后就报错了:

其实linux系统会提供一个类似白名单的东西。

ls /rtc/sudoers:

ll /etc/sudoers:

可以看到 这个文件的拥有者是root,也只有root有资格去修改这个文件。

就算我们vim /etc/sudoers

可以看到是不允许修改的。

也就是说需要修改这个配置文件,我们才能让自己这个用户能使用sudo。

要修改这个配置文件,我们首先得是超级管理员。

但是这里我们先不轻易修改这个配置文件。(以后在学到vim的使用的时候再说)

权限

是什么?

权限本质:能或不能做什么事情

为什么?

1.控制用户的行为,防止错误的发生。

2.理解

权限 = 角色+目标属性

  • 首先,权限限制的是“人”(是谁不重要,重要的是身份)

    • 角色一般有三种:拥有者、所属组、other。

    • (ls -l)

      我们可以看到在这只有两格,但是角色有三种,这是因为other不需要特意记录下来。为什么?因为我们拿一个身份去对照这行信息里的拥有者和所属组,如果既不是拥有者,也不是所属组,那就只能是other了(而且other太多了记不完)。

    • 什么是所属组?

      很多都是自成一组。

      但它存在的意义是什么呢?

      假设只有拥有者和other两种身份是有问题的,比如要把自己拥有的代码公开给组长看,但是因为只有拥有者和other两种身份,把other放开后,不仅组长,其他不该看到的人也会能看到这份代码。(如果公司采用的“赛马制”,竞争的组也能看到自己组的代码)

      • 所以所属组的存在就是为了进行更精细化的管理。
  • 其次,权限要求目标必须具备对应的属性(比如文件本身不具备某种属性,也就谁都没有权限)

    • 文件一般有三种属性:读、写、执行。也就是r、w、x。

ll显式出来的信息中的第一行代表的是文件类型。-是普通类型、d是目录……

还剩下9个字符,3个位一组。

第一组对应的是拥有者权限位。

第二组对应的是所属组权限位。

第三组对应的是other权限位。

(以第一组为例)

三个字符分别代表读、写、执行权限。如果拥有者可以读可以写可以执行,那第一组就是rwx;如果不能读不能写不能执行那就是—,以此类推。

比如现在如果我们要描述my.txt这个文件的权限是什么:

该文件拥有者是whb,拥有者权限是对这个文件可以读可以写但是不能执行;所属组是whb,所属组权限是对这个文件可以读可以写但是不能执行;other的权限是只能读不能写不能执行。

=_=
那么,本文到此结束,在下篇中,我们会学习具体的指令来操作权限,并进一步讲解权限的重点内容。

在这里插入图片描述

标签:理论,sudo,other,拥有者,Linux,权限,root,我们
From: https://blog.csdn.net/2301_82135086/article/details/143806948

相关文章

  • 这款信创CAD Linux与麒麟国产系统高效适配,荣获麒麟用户挚爱奖
    本文为CAD芯智库原创,未经允许请勿复制、转载!原文转自:www.xwzsoft.com/h-nd-493.html信创国产化发展至今已经陆续取得不少突破,作为工程建设/工业制造企业的核心设计/生产软件之一,CAD对国产信创操作系统、硬件设备的适配度发展也至关重要。对此,中望2016就开始投入CAD......
  • Linux 实例:配置 NTP 服务
    网络时间协议(NetworkTimeProtocol,NTP),用于同步网络中各个计算机的时间的协议。其用途是将计算机的时钟同步到世界协调时UTC。腾讯云提供了内网NTP服务器供腾讯云内网设备使用,对于非腾讯云设备,可以使用腾讯云提供的公网NTP服务器。操作场景ntpd(NetworkTimeProtocold......
  • Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑
    文章目录一、初识Vim模式二、vim基本操作2.1基础操作2.2命令模式/正常模式2.2.1光标定位2.2.2复制粘贴、删除2.2.3撤销2.2.4替换字符2.2.5替换模式2.3底行模式2.3.1退出vim和**保存文件**2.3.2定位文本字符串2.3.3命令2.3.4实现分屏2.3.5替换指定字符串2.4补充指令2.4......
  • C++继承权限
    目录1.相关概念 2.继承权限private:protectedpublic:3.继承中的构造函数与析构函数4.继承同名成员的处理方式5.多继承1.相关概念  定义:允许一个类继承另外一个类的属性和方法。 好处:可以减少一些重复性的代码 语法:classA :继承权限 B     ......
  • Linux
    LinuxLinux系统启动过程Linux关机不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。关机的命令有shutdown–hnow,halt,poweroff和init0,重启系统的命令有shutdown–rnow,reboot,init6。图形模式与文字模式的切换方式命令窗口切换的......
  • [Linux]gdb基本使用
    gdb基本使用前提gcc/g++编译出的程序默认是realease版本,要使用gdb调试,首先要在编译的时候加上-g选项。使用readelf-S[程序名]查看可执行文件的节区信息。使用gdb[程序名]:开始调试。q:退出调试。list/l[行号]:从给定的位置显示程序的源代码,每次十行。break/b......
  • 轻松理解操作系统 - Linux文件系统模块完结!又可以快速了解原理了
    在前面的7期中,我们了解了Linux文件系统的模块和它们相互之间是如何配合并形成一个完整的、可以将所有的所有都抽象成文件的体系。这样的体系主要是为了帮助大家在使用或编程的时候更加的简化,从而更简单的使用以及提升效率。本篇文章则提升深入理解Linux文件系统的效率,......
  • 轻松理解操作系统 - 图文:Linux内核虚拟内存的基石是什么?
    第一大模块:一文串联文件系统模块上期文章中,我们了解了 Linux内存管理模块 的其中一大功能:内核虚拟内存管理。内核的虚拟内存是怎么管理的?内核虚拟内存的管理是用户程序创建进程和执行各种任务的基础。没有它,我们就无法正常使用系统。但,虚拟内存终究是要落到物理内存里面的......
  • 欧拉操作系统和linux区别
    centos和Linux区别?linux与centos的区别与联系:1、centos是基于linux建立的操作系统。2、linux属于内核系统,只有终端命令界面,无图形界面。3、centos同时拥有终端命令界面和图形界面。4、linux和centos都是属于开源系统。一般来说,我们平时说Linux指的是Linux系统内核,而cento......
  • DM multipath总结---基于LINUX 7
    DMmultipath总结---基于LINUX7DMmultipath总结DMMultipath提供的功能:冗余:    DMMultipath能够在主动/被动配置下提供故障转移。在主动/被动配置下,只有一半的路径在每次进行I/O时会被使用。若一条I/O路径的任一元素(电缆、交换器或者控制器)出现故障,DMMultipat......