Linux:Linux权限解析

news2024/9/28 7:25:55

一、Linux下的用户分类

 在Linux下,有两种用户,一种是超级用户,一种是普通用户

超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则

普通用户:在linux下做有限的事情。(必须遵守相应的规则

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

1、用户的切换方式

命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。

2、Linux中的所有用户都要有自己的密码,无论是root还是普通用户,并且root的密码和普通用户的密码尽量不要一样!!

3、有些事情只有root可以进行,比如说用yum命令安装软件,但是如果我们普通用户想要去使用root才能使用的命令,那么就需要用sudo command暂时对一条命令进行短暂提权

 4、既然我普通用户可以用sudo对命令按时提权,那么我不就可以相当于root吗??其实这是不合理的,目前我们直接adduser新建的用户,并不可以直接进行sudo,因为系统不信任你,除非未来将普通用户,添加到系统的信任白名单里,才可以用sudo对命令进行提权。

二、Linux权限的概念

什么叫做权限呢??通俗一点说就是一件事情是否允许你做! 

2.1 文件访问者的分类(人的不同身份)

文件和文件目录的所有者:u---User(拥有者

文件和文件目录的所有者所在的组的用户:g---Group(所属组

其它用户:o---Others (其他人

思考:

1、 这三个分类和用户有什么关系???

答:用户相当于是人,而拥有者、所属组、其他人相当于是他们的不同身份,所以任何一个用户都可以是拥有者、所属组或者是其他人。

2、怎么理解拥有者呢??

答:拥有者就相当于是创建该文件的人,对文件具有相关的操作权限

3、怎么理解其他人呢??

答:举个例子,假设张三和李四一起进到腾讯,你们进到了不同的部门,但是由于资金短缺,两个部门共用一台电脑,而腾讯要开发一款叫做王者荣耀的游戏,让你们两个部门都去开发这个游戏,哪个部门开发得好就用谁的(这其实是“赛马论”,虽然大部分的公司都不会让两个部门一起干一件事,因为有点资源浪费,但是在有些公司是会有这种情况的,通过这种方式来给员工们建立一个竞争的环境,激发他们的工作动力,同时不同部门之间也能互相借鉴经验,一起进步。)。所以张三和李四在这条条件下就形成了竞争关系,而两人又在一个寝室,平时李四经常会去借鉴张三的代码,所以有一天当张三写了一段非常好的代码之后(张三属于拥有者),为了不让李四抄袭,就可以对设置其他人的权限(这时李四属于其他人)。

4、为什么会需要所属组呢??

答:还是刚刚的例子,张三通过设置“其他人”权限,让李四无法抄袭自己的代码,但是有一天他的部门组长王五想看看他写的代码,这个时候张三发现如果放开权限的话,这样李四也能看到自己的代码,所以这个时候就需要“所属组”(王五属于所属组),同时所属组的存在也有利于同个部门之间的成员可以看到相互之间写的代码。

2.2 文件类型和访问权限(事物的不同属性)

 2.2.1 文件类型

d:文件夹 

-:普通文件(文本、可执行文件、库)

b:块设备文件(例如硬盘、光驱等磁盘文件)       ——>所在路径:/dev/vda1 

p:管道文件(用来进行通信)                           ——> 用mkfifo可以创建管道文件

c:字符设备文件(例如键盘、显示器等串口设备)——>所在路径:/dev/tty(tty是终端的意思)  

l:软链接(类似Windows的快捷方式)

s:套接口文件

2.2.2  Linux后缀无意义但需要

Linux系统中,文件名后缀没有没有直接的意义。

 当我们用用gcc文件编译.c文件之后,无论这个可执行程序改成什么名字,都可以正常执行!!

 但是不代表Linux系统上运行的其他软件不需要后缀!!比如说gcc是一款编译器、软件,他编译只认.c后缀的文件,如果是其他后缀,他不认。

 所以Linux中的文件是否需要使用后缀,具体看用户的需求!!

 2.2.3 文件基本权限

i.可读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

ii.可写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

iii.可执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“—”表示不具有该项权限

 所以2-10位,每三个为一组,分别代表拥有者、所属组、其他人的权限

而每组的对应的位置含义是什么我们是知道的——每个位置对应的是r/w/x或者是-

所以每个位置都有只有是或者否,对应其指定的文件!!因此我们可以用1表示是,0表示否,每组都可以用一个八进制数字来表示。

2.2.4 文件权限的表示方法 

a、字符表示方法

b、8进制数值的表示方法

 2.2.5 文件访问权限的相关设置方法

1、chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式:

用户表示符+/-=权限字符  (在原有的基础上进行权限的增删查改)

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:所属组

o:其它用户

a:所有用户

 ②三位8进制数字  (直接对权限进行设置 每个数字分别对应拥有者、所属组、其他人)

 

2、chown

功能:修改文件的拥有者

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

注意事项:

我们要把文件给别人时,有两种方法:要么是别人同意,要么是sudo强制提权,而当文件的拥有者改变后,我们只能执行所属组的权限,而不能执行拥有者的权限!且无法再修改权限!!

3、chgrp

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

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

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

2.2.6 没有权限会怎么样 

但是要注意的是,root不受权限约束!!可以随意操作! 

2.3 起始权限问题——文件掩码

为什么普通文件是664,而目录文件是775呢??

 答:其实普通文件的默认起始权限是666,而目录文件的其实权限是777,而影响他们的其实是文件掩码!!

命令:umask

功能:查看或修改文件掩码(凡是在umask中出现的文件,不会在最终的文件权限中出现!

格式:umask  权限值(不带权限值就是查看,带的话就是设置)

看上去好像是默认权限减掉起始权限,但其实并不是这样的,因为我们要考虑这个权限本身就不存在的情况!! 所以无论原来的权限是0还是1,当umask为1时,都要变成0(将某位设置为0,我们要想到&)所以有1则为0而umask为0时,就不能影响原来的权限(如果用&,要想不改变,就得希望该位置是0,其他位置是1,所以可以想到~)

最终权限=起始权限&(~umask)

超级用户默认掩码值为0022,普通用户默认为0002。

2.4 目录权限

r:是否允许我们查看指定目录下的文件内容(ls)

w:是否允许我们在当前目录下进行创建(mkdir、touch)、更改(mv)、删除(rm)

x:可否在目录下执行命令,是否允许用户进入(cd)对应的目录。

注意事项:如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r读权限,而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

2.5 共享文件——粘滞位 

1、普通用户自己的家目录权限是700,所以在家目录创建的文件,别人都看不到!!

2、所以如果当我们需要一些共享文件让所有用户共享时,我们显然不能将该目录建在家目录下!(要建在根目录下)

但是试想一下这样的场景,你作为共享文件的拥有者,你可以设置权限,当你给其他人设置了不可读不可写的权限,其他人怀恨在心,就把你的文件给删了,这显然是不合理的!!!

3、一个文件能否被删除,与文件本身无关,而与存储该文件的目录有关 

但是如果我们不想让别人删除,我们就需要去掉目录的w权限,但是如果这样的话,共享的意义就不存在了!!!因此我们就有了一个新方案叫做粘滞位!

4、粘滞位:给目录进行设置(chmod +t  文件),一般是共享目录,大家可以在目录进行各自文件的增删查改,只允许文件的拥有者或者是root去删除这个文件,其他人一概不允许,t是一种特殊的x权限!!! 

5、其实在根目录下就存在一个tmp目录是带粘滞位的,他相当于就是系统自带的共享文件,我们可以在里面去创建共享文件,而不需要每次创建共享文件都在根目录!!

 2.6 易错点:每个角色只能执行一种身份的权限!!

假设我是拥有者,我也是所属组,而拥有者的权限是---,所属者的权限是rwx,但实际上我只能以拥有者的身份去执行我的权限! 

2.7 file指令 

功能说明:辨识文件类型。

语法:file [选项] 文件或目录... 

常用选项:

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。

-z 尝试去解读压缩文件的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable-Diffusion1.5

SD1.5权重:https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main SDXL权重:https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main diffusers库中的SD代码pipelines:https://github.com/huggingface/di…

来点八股文(六) 网络Linux调优

性能指标 如何衡量程序的网络性能?你会看哪一层?看哪些指标?用哪些工具? 我们通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。 应用层**[wrk、Jmeter]** **每秒处理请求数和延…

ComfyUI插件:ComfyUI-BrushNet节点

前言: 学习ComfyUI是一场持久战,而ComfyUI-BrushNet是最近的局部重绘节点,其包含BrushNet和Powerpaint两个主要节点,其中BrushNet有SD1.5和SDXL两个版本,PowerPaint只有1.5的模型可以使用,学会该插件&…

自动驾驶中的三维坐标系变换:原理、方法与实践

文章目录 1. 摘要2. 背景介绍2. 常用的坐标系定义2.1 全局坐标系(Global Coordinate System)2.2 车体坐标系(Vehicle Coordinate System)2.3 相机坐标系(Camera Coordinate System)2.4 图像坐标系&#xff…

Tech Talk: SSD架构与功能模块详解

在之前的系列文章中,我们介绍了固态硬盘的系列知识,包括闪存的介质、原理,以及作为SSD大脑的控制器设计,本文将详细介绍SSD架构以及功能模块。 SSD架构简介 ◎SSD架构示意图 如上图所示,典型的SSD架构包括主机接口、SS…

vue编译为render函数:模板编译过程

模板编译过程:模板编译为render函数,返回vnode。再执行diff和patch。 使用webpack,vue-loader,会在开发环境下编译模板。 虚拟dom和diff算法 1,将dom抽象为虚拟dom,diff算法对比新旧虚拟dom,只把变化的部…

瓜子二手车在财务中台结账核心系统 TiDBTiFlash 实践

作者: jshan 原文来源: https://tidb.net/blog/69f61649 一、前言 瓜子二手车,作为业界独树一帜的二手车电商平台,正以其创新力量重塑整个二手车行业。我们以用户为中心,致力于提供卓越的交易和服务体验&#xff0…

熊海1.0cmsPHP代码审计

熊海1.0cmsPHP代码审计 环境搭建 下载之后直接使用phpstduy搭建就好了 工具使用 比如使用seay审计系统 sql大多数是存在的,但是没有文件上传,这个就是需要自己去验证 漏洞审计 SQL注入 有点多,随便拿一个举例子 就比如我们的登录页面…

蚓链数字化生态系统:引领企业迈向数字化新时代

在当今竞争激烈的商业世界中,数字化转型已成为企业生存和发展的关键。然而,面对复杂的业务流程、海量的数据以及不断变化的市场需求,许多企业在数字化的道路上举步维艰。这时,蚓链数字化生态系统解决方案宛如一盏明灯,…

苹果手机清理软件:让你的iPhone保持最佳状态

随着iPhone成为我们生活中不可或缺的一部分,设备上积累的无用数据也在日益增多。这些数据不仅占据宝贵的存储空间,还可能影响设备的性能。幸运的是,市场上提供了多种苹果手机清理软件,帮助用户有效管理手机空间,提升设…

具有重加权位置和变换稀疏性的鲁棒非刚性配准算法 (RPTS)

该算法针对非刚性配准的问题。相较于刚性配准,非刚性配准更具有挑战性。要解决的问题通常是不适定的(ill-posed)、且自由度高,因此对噪声和异常值很敏感。为了提高非刚性配准算法对噪声和异常值的鲁棒性,李坤等人提出了…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践(辩论赛)构建】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT(特朗普与拜登的二人辩论)2-1、安装&配置2-2、使用已有的Agent(ProductManager)2-3、智能体对抗辩论——背景2-4、定义动作2-5、定义角色…

美亚科技现场检查问题不少:应收账款大幅攀升,与前员工交易金额巨大

《港湾商业观察》施子夫 6月27日,广东美亚旅游科技集团股份有限公司(以下简称,美亚科技)的IPO被北交所受理,保荐机构为广发证券。7月24日,北交所下发审核问询函。 此次IPO,美亚科技计划投资总…

GIS图形库更新2024.7.29-8.4

更多精彩内容请访问 dt.sim3d.cn Cesium 上周发布了1.120版本, ✨ 功能和改进 添加Transforms.computeIcrfToMoonFixedMatrix和Transforms.computeMoonFixedToIcrfMatrix这两个方法,用来计算给定时间内的月球固定坐标系和 ICRF(国际天球参…

WLAN国家码与信道顺从表

国家码和信道顺从表及信道功率限制 不同的国家和地区规定了在本国或本地区可以使用的信道、射频信号在信道中的最大发射功率。工作在不同信道的射频信号,信号强度可能会有差别。国家码和信道顺从表、各信道的功率限制值、信道编号和频率对照关系请参见国家码和信道…

LED透明屏与LED显示屏

在当今数字化时代,显示技术的发展日新月异,LED显示屏作为其中的重要一员,已经渗透到我们生活的方方面面。而LED透明屏作为LED显示屏的创新产品,以其独特的优势在多个领域展现出巨大的应用潜力。本文将全面介绍LED透明屏与传统LED显…

18981 正方形和圆

这个问题可以通过计算正方形和圆的面积并比较它们的大小来解决。正方形的面积可以通过边长的平方来计算&#xff0c;圆的面积可以通过半径的平方乘以π来计&#xfffd;&#xfffd;&#xfffd;。 以下是使用C的代码实现&#xff1a; #include <iostream> #include &l…

云原生-利用容器和编排器

容器和编排器旨在解决单片部署方法中常见的问题。 1. 整体部署的挑战 传统上&#xff0c;大多数应用程序都是作为单个单元部署的。这样的应用程序被称为单体。这种将应用程序作为单个单元部署的一般方法&#xff08;即使它们由多个模块或程序集组成&#xff09;称为单体架构&…

Kubernets(k8s) 网络原理二:Pod访问外网

上一篇文章中&#xff0c;我们介绍了pod与宿主机通信&#xff0c;并且通过network namespace模拟了通信过程。回顾整个流程&#xff0c;无非就涉及到两个东西&#xff0c;通信设备和路由规则。 本文要讲的&#xff0c;也离不开这两个东西&#xff0c;只不过需要对容器IP进行额…

django高校毕业生就业推荐系统-计算机毕业设计源码26096

摘 要 当前就业市场竞争激烈&#xff0c;高校毕业生面临着就业难的问题&#xff0c;同时企业也面临招聘难、选人难的挑战。为了更好地对接高校毕业生和企业之间的需求&#xff0c;为毕业生提供个性化的就业求着信息&#xff0c;开发一套充分利用Django和Python技术实现的毕业生…