【Linux从入门到精通】Linux中的权限管理(实例+详解)

news2024/11/28 4:47:40

  

 本篇文章对Linux下的普通用户超级用户进行了对比详解。同时有添加和删除普通用户的讲解。也详细的解释了普通文件的权限、拥有者、所属组设置方法,和对目录的权限设置方法。根据需求引出粘滞位,对粘滞位进行详细的解释。解释每个要点是都带有实例,超级详细且容易理解!!!

文章目录

一、Linux下用户

1、1 useradd/userdel  添加和删除普通用户

1、2 su 用户切换

二、Linux文件权限管理

2、1 文件访问者

2、2 文件类型和访问权限(事物属性)

2、3 文件权限的相关设置方法

2、3、1 chmod 修改文件权限

2、3、2 修改文件权限(八进制)

2、3、3 chown 修改文件的拥有者

2、3、4 chgrp 修改文件的所属组

2、4 目录权限设置

2、4、1 目录权限的基本设置

2、4、2 粘滞位详解

三、总结


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:Linux 👀

💥 标题:Linux权限管理 💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

一、Linux下用户

  Linux下的用户分为两种:普通用户(自建用户)和超级用户(root 用户)。当然,在Linux下,可创建多个普通用户,但始终只有一个超级用户。

  两种用户是有所区别的:

  • 超级用户:可以再linux系统下做任何事情,不受限制;
  • 普通用户:在linux下做有限的事情;
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

1、1 useradd/userdel  添加和删除普通用户

  我们在上面了解到有普通用户和超级用户。初次在Linux下操作,即为超级用户(root用户)。我们想添加一个新的普通用户,可以用到指令:useradd 用户名。具体如下:

  添加用户后,我们可对新添加的用户进行设置密码,指令:passwd 用户名。具体如下图:

  我们设置好密码后,也可通过 passwd 用户名 进行修改密码。

  我们突然发现此用户已经没有用了,我们想要删除该用户。可以用到指令:userdel -r 用户名。 我们可结合下图理解:

  注意:userdel -r 用户名中的 -r 是必不可少的。如果我们不添加 -r 选项,发现用户是已经被删除了,但是用户的文件任然在。具体如下:

1、2 su 用户切换

  我们可在 root 下的家文件中(home)可查看当前的所有普通用户,如下:

   那用户之前怎么相互切换呢?我们需要了解一个命令:su

  命令 su [ 用户名 ]
  功能 :切换用户。
  例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root用户的口令。
  我们可看下面的实例:

  我们细心观察的话,可以发现:从root用户切换到gtm用户,无需密码。而从gtm用户切换到root用户,需要输入root用户的密码。这方面也间接的体现出权限的问题。我们下面会详解。 

二、Linux文件权限管理

2、1 文件访问者

  文件访问者的共有三种:

  1. 拥有者。文件和文件目录的所有者:u---User(中国平民 法律问题);
  2. 所属组。文件和文件目录的所有者所在的组的用户:g---Group;
  3. 其他。其它用户:o---Others。

  通俗来讲,这个文件可以属于我们自己,权限也只有自己可使用(User)。我们也可对一部分人进行公开一定权限,我们称之为同组类(Group)。也可对所有人进行访问该文件,除了我们自己和同组人,剩余的我们称为其他(Others)。

2、2 文件类型和访问权限(事物属性)

  一个文件,我们对其可进行哪些操作呢?我们可以阅读该文件,或修该文件的内容,再或执行该文件。无非就这三种操作。我们也称之为文件的基本操作:

  1. 读(r/4 Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限;
  2. 写(w/2 Write 对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限;
  3. 执行(x/1 execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限;
  4. “-” 表示不具有该项权限
  可能现在对上述有些容不太理解,我们先接着往下看,回头再看会理解的。我们先看一个文件的详细属性:

   权限我们这里给出了大概,详细又分拥有者、所属组、其他人的权限。具体可看下图:

  其中第一个文件类型具体又分一下几种:

  • d :文件夹;
  • - :普通文件;
  • l :软链接(类似 Windows 的快捷方式);
  • b :块设备文件(例如硬盘、光驱等);
  • p :管道文件;
  • c :字符设备文件(例如屏幕等串口设备);
  • s :套接口文件。
  这里我们不再对文件进行详细描述了,我们遇到知道该字符所指的文件类型为什么即可。

  我们在上面看到权限的不同访问者的权限,拿这些字母都表示什么意思呢?我们先看如下表格:

  在这里稍微给大家解释一下。访问者访问该文件,无非就是有某种访问权限或者无某种访问权限两种。这里'r'、’w'、'x'分别代表的时有该种权限,’-‘ 表示无该种权限。且每个访问者的权限分别都用了三位来表示,且 'r'、’w'、'x' 的位置不可更换。

  当我们了解到了文件的访问者和权限后,我们更关心的是怎么去修改这些权限呢?其中的细节又有哪些呢?我们接下来要进入到重点了!!!

2、3 文件权限的相关设置方法

  修改文件的访问权限的指令为 chmod

  功能: 设置文件的访问权限
  格式: chmod [ 参数 ] 权限 文件名
  常用选项:
  • R -> 递归修改目录文件的权限;
  • 说明:只有文件的拥有者和root才可以改变文件的权限
  chmod指令全限制的格式:
  • 用户表示符+/-=权限字符
  1. +:向权限范围增加权限代号所表示的权限;
  2. -:向权限范围取消权限代号所表示的权限;
  3. =:向权限范围赋予权限代号所表示的权限;
  4. 用户符号:u:拥有者 、g:拥有者同组用、o:其它用户、a:所有用户。

  我们了解到这里指令的使用方式后,具体怎么使用和其中的细节,我们看下面的实例会给大家详细介绍。 

2、3、1 chmod 修改文件权限

  修改文件权限指令: chmod [参数] 权限 文件名。我们可结合下图一起理解:

  当我们修改权限只有’w‘时,我们就是不能够阅读该文件和执行该文件的,如下:

  那要是我们进入到root用户,去阅读该文件是否被允许呢?此时的文件拥有者和所属组均为gtm用户,此时root用户充当着其他人(Other)的角色。   我们发现是可以的耶。但是要注意的是,root用户不能执行该文件。为什么呢?如果没有执行的权限,说明此文件并不一定是安全的,万一有风险呢?所以我们这里不可直接执行。如果执意要执行,我们也可在root用户下对其直接增加可执行权限  通过这里我们似乎感觉到root用户基本无权限限制,真的是这样嘛?我们接着往下看。我们在尝试去掉其他用户(Other)’w‘权限,看 root 用户是否可以进行编辑操作:

  我们发现确实是可以的。 通过下面实例,我们也可发现root用户的全限基本无限制。

2、3、2 修改文件权限(八进制)

  我们发现,一个访问者的权限,无非就 ' r ' 、'  w '、' x '三种权限。表示是否有该权限的状态就两种:有( ' r ' 、'  w '、' x ') 或者没有( '-' )。那我们就想到了用二进制的1和0来表示是否有该权限。如下图,对应出来一个访问者的二进制权限表示:110 000 101。

  我们把它转换为对应数字605。一个访问者由三个二进制转换为数字最高不超过8。所以我们称之为8进制。

  具体怎么用八进制进行修改权限呢?我们看下图实例: 

2、3、3 chown 修改文件的拥有者

  修该文件的拥有者所用指令:chown 用户名 文件名 。我们可结合下图理解:

  我们发现这里我们修改拥有者的操作别禁止了。为什么呢?这就好比如,我们把文件给root用户,我们就不需要征得root用户的同意了吗?答案是需要的。我们仍需要整的root用户的同意的,并不是我们给人家,人家就得要。我们可在该命令前加 sudo,或者切换到root用户下进行修改都可以的,具体如下图:

  但是我们同时又发现,在root用户下可以随便修改文件的拥有者。如下图:

  本属于root的文件,我们强行给到gtm用户,也可在次修改回来。我们再次发现root用户权限基本无限制。而普通用户权限需受到限制。

2、3、4 chgrp 修改文件的所属组

  修该文件的拥有者所用指令:chgrp 用户名 文件名 。我们可结合下图理解:

   我们发现,root用户可以修改本不属于它的文件的所属组。但所有用户都可这样吗?具体细节我们看下图:

  当然,我们也可同时修改文件的拥有者和所属组,前提是你有相应的权限。具体如下:

2、4 目录权限设置

2、4、1 目录权限的基本设置

  上面我们学习了对普通文件的权限设置后,我们再看对目录权限的设置。对目录的权限都有哪些:

  • 可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中;
  • 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容;
  • 可写权限(w): 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。

  我们可结合下图实例学习:   上图是我们对目录缩小了可读 ‘ r ’ 的权限,再想访问该目录下的具体文件的信息是权限就被限制了。但是我们仍然可进入到该目录下,因为我们此时有 ‘x’ 可执行权限为什么进入该文件需要可执行指令,因为文件在Linux下相当于一个可执行程序,执行它就等同于进入该文件。

  我们更改其他用户也无 ‘r’ 读权限。那要是在root用户下呢?

  事实证明,root用户仍可以读。再次体现root用户权限基本无限制。

  通过实例,我们再看一些具体目录权限的细节: 

  那么问题来了:如果我们想让Other可以在特定目录下创建文件,并且写入(对Other打开 ‘w’ 权限)。但是并不象让Other删除掉自己的任何文件(对Other限制 ‘w’ 权限),这似乎好像矛盾了,但在实际需求中又不可缺。因此就引出了粘滞位。我们接着往下看。

2、4、2 粘滞位详解

  粘滞位是什么呢?粘滞位也是一个权限。最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后Other可以在该目录下创建文件并写入,但只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。

  通过对粘滞位了了解后,我们发现确实能够解决上面的矛盾和满足我们的需求了。那我们接下来就要看怎么设置粘滞位了。对目录设置粘滞位的命令是:chmod +t 目录名

   此时其他用户可以访问test_4_14目录,但并不能删除test_4_14目录下的文件,且只有test_4_14目录内文件的所有者或者root才可以删除或移动该文件

  粘滞位还有一中应用场景。就是一个系统下可能会有很多用户,那就意味着就会有很多的临时数据。那临时数据都保存在哪里了呢?临时数据文件保存在了系统的 /tmp 目录下。  因为所有用户都要把临时数据放到系统的 /tmp 目录下(该目录本身属于root用户的),那么系统的 /tmp 目录的权限对Other要放开。但我们又不能让一个用户随意操作删除此目录下的其他文件,所以就设置了粘滞位。进而用户只能创建和操作属于自己的临时数据文件。 

  当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
  • 超级管理员删除;
  • 该目录的所有者删除;
  • 该文件的所有者删除。

三、总结

  这里给大家列出关于权限的总结:

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
  • 如果修改权限受限,仍想要执行该命令,可切换到root用户或者加上sudo;
  • root用户基本无权限限制;
  • 普通用户收到权限限制。

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

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

相关文章

分享一个可交互的卡片

五一放假了&#xff0c;寻思着来一个应景的玩意&#xff0c;所以它诞生了。 先上效果图&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><…

给失业的互联网人一个思路:别再苦苦找工作了,要去找门槛低、现金流好、天花板低、资本看不上的创业项目,一年也能几百万!...

失业大潮中的互联网人该何去何从&#xff1f;这大概是许多人在难捱的深夜反复思考的问题。 一位失业很久的网友就在痛苦思索中悟出了适合自己的道路&#xff0c;下面分享给大家&#xff0c;篇幅太长&#xff0c;小编给大家划一下重点。 先说结论&#xff1a;失业的互联网人别再…

MySql数据库的初步安装与数据表结构数据管理

1.数据库的相关了解 1.1 数据库的概念 数据库&#xff08;database&#xff09;是用来组织、存储和管理数据的仓库 数据库管理系统&#xff08;DBMS&#xff09;&#xff1a;是实现对数据有效组织&#xff0c;管理和存取的系统软件。 数据的建立和维护功能&#xff0c;数据定…

【C语言】struct结构体

文章目录 一. 结构体简述二. 结构体的声明和定义1、简单地声明一个结构体和定义结构体变量2、声明结构体的同时也定义结构体变量3、匿名结构体4、配合typedef&#xff0c;声明结构体的同时为结构体取别名5、在声明匿名结构体时&#xff0c;使用typedef给这个匿名结构体取别名 三…

用 AudioGPT 输入自然语言,可以让 ChatGPT 唱歌了?

夕小瑶科技说 原创作者 | 智商掉了一地 借助 ChatGPT 强大的理解与生成能力&#xff0c;结合基础语音模型&#xff0c;集成模型 AudioGPT 诞生了&#xff01; 最近基于 ChatGPT 的二创如雨后春笋一样冒出&#xff0c;上周我们一起看了黑客松优秀作品大赏&#xff0c;这周又有新…

HCIP-7.2VLAN间通信单臂、多臂、三层交换方式学习

VLAN间通信单臂、多臂、三层交换方式学习 1、单臂路由2、多臂路由3、三层交换机的SVI接口实现VLAN间通讯3.1、VLANIF虚拟接口3.2、VLAN间路由3.2.1、单台三层路由VLAN间通信&#xff0c;在一台三层交换机内部VLAN之间直连。3.2.2、两台三层交换机的之间的VLAN通信。3.2.3、将物…

Ae:画笔面板

Ae菜单&#xff1a;窗口/画笔 Brushes 快捷键&#xff1a;Ctrl 9 画笔 Brushes面板提供了画笔预设及画笔设置&#xff08;包括画笔动态&#xff09;等的参数设置。 画笔预设 Brush Presets 画笔预设窗格中提供了自带的画笔预设&#xff0c;主要有尖角 Hard Round、柔角 Soft R…

【云原生】Epinio--Kubernetes 的应用程序开发引擎

Kubernetes 已成为容器编排的事实标准&#xff0c;改变了我们的开发流程。十年前&#xff0c;我们只需要将代码打包成 war/jar 包&#xff0c;然后启动应用即可。然而&#xff0c;现在面向 Kubernetes 的开发&#xff0c;交付的产物有可能是 Helm Chart、Workload Yaml、Docker…

SOFA Weekly|SOFAArk 社区会议预告、Layotto 社区会议回顾、社区本周贡献

SOFA WEEKLY | 每周精选 筛选每周精华问答&#xff0c;同步开源进展 欢迎留言互动&#xff5e; SOFAStack&#xff08;Scalable Open Financial Architecture Stack&#xff09;是蚂蚁集团自主研发的金融级云原生架构&#xff0c;包含了构建金融级云原生架构所需的各个组件&am…

【SPSS】相关分析和偏相关分析详细操作过程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

Vben Admin 自学记录 —— 介绍及使用(持续更新中...)

Vue-Vben-Admin 一个基于 Vue3.0、Vite、Ant-Design-Vue、TypeScript的后台解决方案&#xff0c;为开发中大型项目提供开箱即用的解决方案。 包含功能&#xff1a; 二次封装组件utilshooks动态菜单权限校验按钮级别权限控制… 安装 1.拉取代码 从GitHub上 git clone https:/…

「OceanBase 4.1 体验」|大厂开始接入的国产分布式数据库,不来了解了解?

OceanBase 4.1 体验 前言OCP Express在线升级功能租户级物理备库TP&#xff08;事务处理&#xff09;和AP&#xff08;分析处理&#xff09;优化TP 性能优化AP 性能优化 结尾 前言 上次我们讲了本人自己亲自上手OceanBase 4.1的初体验&#xff0c;国产的分布式数据库也太太太太…

HCIA-RS实验-路由配置-简述RIPv1 和RIPv2

简述 RIPv1和RIPv2是两种不同版本的路由信息协议&#xff08;Routing Information Protocol&#xff09;&#xff0c;用于在网络中传递路由信息。它们的主要区别在于以下几点&#xff1a; 1. 分类&#xff1a;RIPv1是一种类别路由协议&#xff08;classful routing protocol&a…

Python实现图像的手绘效果

用Python实现手绘图像的效果 1.图像的RGB色彩模式 图像一般使用RGB色彩模式&#xff0c;即每个像素点的颜色由红、绿(G)、蓝(B)组成。RGB三个颜色通道的变化和叠加得到各种颜色&#xff0c;其中&#xff1a; R红色&#xff0c;取值范围&#xff0c;0-255G绿色&#xff0c;取值…

将时间序列转换为分类问题

本文将以股票交易作为示例。我们用 AI 模型预测股票第二天是涨还是跌。在此背景下&#xff0c;比较了分类算法 XGBoost、随机森林和逻辑分类器。文章的另外一个重点是数据准备。我们必须如何转换数据以便模型可以处理它。 在本文中&#xff0c;我们将遵循 CRISP-DM 流程模型&a…

机器学习强基计划8-4:流形学习等度量映射Isomap算法(附Python实现)

目录 0 写在前面1 什么是流形&#xff1f;2 什么是流形学习&#xff1f;3 等度量映射原理4 Python实现 0 写在前面 机器学习强基计划聚焦深度和广度&#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理&#xff1b;“广”在分析多个机器学习…

【经验分享】Windows/Ubuntu上如何使用api下载kaggle上的数据集

1 下载kaggle的api 1.1 已经安装了Anaconda 打开cmd&#xff08;Windows&#xff09;/打开终端&#xff08;Ubuntu&#xff09; conda activate 你的conda环境名称 这里我的环境叫做Pytorch conda activate Pytorch然后执行pip install kaggle pip install kaggle如果你没…

沃尔玛、亚马逊影响listing的转化率4大因素,测评补单自养号解析

1、listing的相关性&#xff1a;前期我们在找词&#xff0c;收集词的时候&#xff0c;我们通过插件来协助我们去筛选词。我们把流量高&#xff0c;中&#xff0c;低的关键词都一一收集&#xff0c;然后我们再进行对收集得来的关键词进行分析&#xff0c;再进行挑词&#xff0c;…

云计算:优势与未来趋势

文章目录 前言一、云计算的优势1. 降低IT成本2. 提高工作效率3. 提高业务的可靠性和稳定性4. 提升安全性 二、未来发展趋势1. AI与云计算的融合2. 边缘计算的发展3. 多云的趋势4. 服务器和存储的创新 三、 行业应用案例1.金融行业2.医疗保健行业3.教育行业4.零售和物流行业 四、…

2.4 定点除法运算

学习目标&#xff1a; 学习如何实现一个基于余数查商法的定点除法运算&#xff0c;并能够正确地进行除法计算&#xff0c;包括处理舍入误差和溢出等问题。具体要求包括&#xff1a; 熟悉定点数的表示方法和定点数的基本运算法则&#xff0c;理解定点除法运算的基本概念和原理。…