Linux 权限掌控术:深入探索和用户管理

news2024/11/29 3:43:23

文章目录

  • 前言
  • 1.外壳程序是什么?
    • 外壳程为什么存在?
    • 工作原理
    • 外壳程序怎么个事?
  • 2. Linux权限的概念
    • 2.1 什么是权限
    • 2.2权限的本质
    • 2.3 Linux中的用户
  • 3. 普通用户变成root
    • linux中有三种人
  • 4.Linux中文件的权限
    • 4.1文件的属性权限
    • 4.2 掌握修改权限的方法`chmod`
    • 4.3 对比权限的有无,表现
    • 4.4.相关权限的第二套做法
    • 权限的数字表示法
  • 5.文件类型
    • b:块设备文件
    • c:字符设备文件
    • p:管道文件
    • l:链接文件
    • 如何理解`x`(可执行权限)
  • 6. Linux创建文件时,为什么有默认权限
  • 结语:

前言

在这篇博客中,我们将深入探索 Linux 权限系统,这是理解和有效管理 Linux 系统的一个关键组成部分。Linux 权限系统为系统安全提供了强大的基础,它通过精确控制对文件和目录的访问来保护系统免受未授权的访问和更改。无论您是 Linux 新手还是经验丰富的系统管理员,掌握 Linux 权限的知识都是至关重要的。在这篇博客中,我们将详细介绍权限类型、特殊权限设置、权限的数字表示法,以及如何管理和应用这些权限。我们的目标是提供一个清晰、全面的指南,帮助您理解和有效地使用 Linux 权限系统。

1.外壳程序是什么?

大部分指令就是文件用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳小程序

外壳程序是操作员与操作系统交互的界面,操作系统再负责完成与机器 硬件 的交互。
介于用户和操作系统之间的软件,也叫命令行解释器

外壳程为什么存在?

1.用户不善于和os(操作系统)之间交互
2.shell外壳的存在,可以对请求进行合法性检查,变相的保护os

工作原理

命令解析:Shell 首先解析命令行输入,处理特殊字符(如引号、空格)。
环境变量:Shell 使用环境变量来配置用户环境。例如,PATH 环境变量定义了 Shell 搜索可执行文件的目录。
管道和重定向:Shell 允许使用管道(|)和重定向(>、<)来连接多个命令,使得输出从一个命令流向另一个命令。

外壳程序怎么个事?

创建子进程,让子进程进行执行
一直都可以做自己的工作—不受任何失败的影响
bash基本都会给我们创建一个子进程(帮用户进行命令解释)bash只需要进行等待就行了


2. Linux权限的概念

2.1 什么是权限

通过一定的条件,拦住一部分人,给另外一部分权力,来访问某种资源

2.2权限的本质

权限和人有关
权限和事务的属性有关
权限= 人+事务的属性

2.3 Linux中的用户

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

3. 普通用户变成root

su +密码或者su -+密码
区别:
su 是把普通用户身份发生变化为root
su -相当于让root重新登陆
pwd所处于的路径不会发生变化

建议普通用户和root不要设置成为一样的

root 账户想要变成其他账户不需要密码,直接su+用户名
su 用户名:从root变成普通用户

ctrl+D退回普通用户

linux中有三种人

分别为:拥有者.所属组.other

拥有者——文件和文件目录的所有者:u---User(中国平民 法律问题)
所属组——文件和文件目录的所有者所在的组的用户:g---Group(不多说)
other——其它用户:o---Others (外国人)

sudo指令提权
普通用户以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。


4.Linux中文件的权限

4.1文件的属性权限

一般三种:

r.读
w.写
x.可执行权限

权限=用户角色(具体的人)+文件权限属性
在这里插入图片描述

4.2 掌握修改权限的方法chmod

一个文件的权限,谁可以修改?
a:文件的拥有者
b:root用户


命令chmod
功能:设置文件的访问权限格式:chmod [参数] 权限 文件名

运行chmod u-r test.txt意味着就文件test.txt的拥有者的去掉r(减去r)权限
在这里插入图片描述
同理:
运行chmod u-r test.txt意味着就文件test.txt的拥有者的加上r权限
在这里插入图片描述

总结:
更改所属组的权限用chmod g±?(r.w.x)
更改other的权限用chmod o±?(r.w.x)

多个"人"的权限操作:
在这里插入图片描述

对所有人进行操作
如:chmod a+r test.txt
在这里插入图片描述

4.3 对比权限的有无,表现

对于普通用户,自身要受到权限的约束,即使这个文件是自己的!
root 账号不受权限的约束,

权限存在的意义是保证普通用户的文件的一般安全性!
当拥有者没有权限,而所属组拥有权限时对其进行读,写,执行,操作时,并不能执行
在这里插入图片描述

对用户身份进行识别时,只识别一次。匹配成功就不往后匹配,优先匹配拥有者,如果匹配不成功,则匹配所属组。

在root情况下,更改文件的拥有者:chown +用户+文件名
在这里插入图片描述

比如:此时我们是whb,我们把文件的拥有者改成root,首先匹配拥有者是否是root,很显然并不是所以接下来开始匹配所属组是否是whb,是然后匹配权限,权限允许,就可以进行操作。

在这里插入图片描述

在root情况下,更改文件的所属组:chgrp+用户+文件名

4.4.相关权限的第二套做法

前面说过:
权限= 用户角色(具体的人)+文件权限的属性
如果你是一个普通权限者,想要把文件拥有者或者所属组给别人,但是权限不允许,就要用sudo提权。

操作方法:
sudo+chown +用户+文件名
sudo+chown +用户1+用户2+文件名(拥有者或者所属组全部改)
sudo+chgrp +用户+文件名
把文件给别人是强制的!

权限的数字表示法

八进制表示:每种权限类型(读、写、执行)分别对应一个数字(4、2、1)。通过将这些数字相加来表示不同的权限组合。例如,chmod 755 表示所有者有全部权限(7),而组用户和其他用户只有读和执行权限(5)

chmod+八进制+文件名
在这里插入图片描述
在这里插入图片描述

5.文件类型

windows中是通过后缀名区分文件类型的。
在这里插入图片描述

但是Linux不通过后缀名区分文件类型(不是说,Linux不用后缀)
在Linux中是通过ls-l结果的第一个属性列来区分的
比如:

-:普通文件,文本文件,可执行程序,库等都叫做普通文件
d:目录文件
b:块设备文件
c:字符设备文件
p:管道文件
l:链接文件

b:块设备文件

这里表示磁盘设备
在这里插入图片描述

c:字符设备文件

在显示器上输出的数字是以字符的形式输出的,显示器本质就是字符设备,又因为在LInux中,一切皆是文件,所以显示器也是字符设备文件,
在这里插入图片描述
当我们复制渠道,相当于多打开了显示器,
在这里插入图片描述
这时候我们继续查看会发现多了个1
在这里插入图片描述
秉承着Linux中一切皆文件的原则,我们向1中重定向(写入)内容,可以发现,另外一个屏幕输出了这个内容
在这里插入图片描述
当前屏幕为0,对0操作也输出了
在这里插入图片描述

p:管道文件

进行进程间的通信
我们把hello Linux输入到管道文件pipe中,然后在另外一个文件中进行输入重定向,可以发现hello Linux在另外一个显示器中打印了
在这里插入图片描述
这就叫做进程间通信

l:链接文件

首先创建一个链接文件
在这里插入图片描述
在这里插入图片描述
运行这个文件可以发现,结果是原文件的内容
在这里插入图片描述
注意:
在这里插入图片描述

如何理解x(可执行权限)

可执行权限 vs 可执行
可执行权限≠可执行
我们给文件test.c加上x权限,并且运行,发现运行并不成功

在这里插入图片描述可以执行 = 具有可执行权限+它就是一个可执行的文件。

如果我们要进入一个目录,需要什么权限?
目录的r权限:决定用户能否查看指定目录内的文件信息
目录的w权限:决定用户能否在指定目录内新建,修改,删除文件
目录的x权限:决定用户能否进入目录

如何理解?
文件=内容+属性
在这里插入图片描述

6. Linux创建文件时,为什么有默认权限

创建的起始权限是:0666,去掉x的
创建的起始权限是:0777,包含x的
而我们生成文件时,是减去umask的。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

我们可以用umask 0000指令把umask清零。
这时候,我们创建的文件的权限就都是起始权限了
在这里插入图片描述

结语:

通过本篇博客的阅读,您现在应该对 Linux 权限系统有了一个全面的了解。从基本权限的分配到特殊权限的应用,从理解权限的数字表示法到实际操作中的权限管理,我们已经覆盖了所有关键方面。掌握这些概念不仅对于保护您的系统至关重要,而且对于优化工作流程、提高生产效率也有显著的益处。希望您能将这些知识应用到日常的 Linux 使用和管理中,更加自信和高效地处理各种权限相关的任务。

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

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

相关文章

[DL]深度学习_AlexNet

AlexNet网络详解 目录 一、AlexNet 1、详细介绍 2、网络框架 二、网络详解 1、首次使用ReLu激活函数 2、模型基本结构与双GPU实现 3、局部响应归一化(LRN) 4、重叠池化(Overlapping Pooling) 5、数据增强 6、Dropout 一、AlexNet 1、详细介绍 AlexNet是一种经典的卷积…

Javascript 循环结构while do while for实例讲解

Javascript 循环结构while do while for实例讲解 目录 Javascript 循环结构while do while for实例讲解 一、while语句 二、do…while语句 三、for循环 疑难解答 我们从上一节课知道&#xff0c;JavaScript循环结构总有3种&#xff1a; &#xff08;1&#xff09;while语…

S7.Net与西门子PLC通讯

开发环境准备 同时由于设备还未采购,没有设备进行测试开发,会安装一个仿真模拟器进行调试。(真心的,谁想到还能仿真模拟设备) 需要安装的软件包括 ◦TIA Portal V14 ◦S7-PLCSIM V14 ◦NetToPLCsim-S7o-v-1-2-2-0 TIA Portal 西门子官方管理设备数据块的客户端,每一…

【网络安全】upload靶场pass11-17思路

目录 Pass-11 Pass-12 Pass-13 Pass-14 Pass-15 Pass-16 Pass-17 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x…

盾构机数据可视化监控平台 | 图扑数字孪生

2002 年,中国 863 计划把盾构机列为国家关键技术&#xff0c;以国家力量为主导&#xff0c;集中力量进行盾构机专项研究。在 2008 年&#xff0c;中国成功研制出属于自己的国产盾构机——中国中铁一号&#xff0c;同时还打通了天津地铁 1500m 的隧道。此举更彻底地打破了国内盾…

基于Java SSM框架实现企业销售人员培训系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现企业销售人员培训系统演示 摘要 目前由于我国企业销售人员培训系统的规模较小,同发达国家相比,人员培训比重始终偏低,用户意识比较低下,为进一步提高用户的销售意意识的提升,我觉得开发一套关于企业销售人员培训系统很人必要,虽然许多企业主动选用人员培…

测试新字符设备驱动代码

一. 简介 上一篇文章编写了新字符设备驱动框架的代码&#xff0c;并编写了 LED灯IO初始化工作&#xff0c;也编写了Led的开与关函数。文章地址如下&#xff1a; 向新字符设备驱动代码框架中添加Led功能函数-CSDN博客 本文对所完成的新字符设备驱动代码进行测试。通过测试程…

[电磁学]大学物理陈秉乾老师课程笔记

主页有博主其他上万字的精品笔记,都在不断完善ing~ 第一讲 绪论,库仑定律 主要讲解了电磁学中的库伦定律和电场的相关概念&#xff0c;介绍了电荷和电磁相互作用的规律&#xff0c;并讲解了电场强度和电势的概念。 03:14 &#x1f393; 库伦定律&#xff1a;电势能与电荷的关…

学习华为企业无线网络,有这篇文章就够了。

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; •以有线电缆或光纤作为传输介质的有线局域网应用广泛&#xff0c;但有线传输介质的铺设成本高&#xff0c;位置固定&#xff0c;移动性差。随着人们对…

智安网络|实现安全与网络功能一体化:SASE的全新安全策略

随着企业信息化和数字化程度的不断提升&#xff0c;网络安全面临着前所未有的挑战。传统的网络安全模式已经无法满足日益复杂的安全需求。在这一背景下&#xff0c;安全访问服务边缘&#xff08;SASE&#xff09;崭露头角&#xff0c;并逐渐成为新一代网络安全架构的关键概念。…

丢失VCRUNTIME140_1.dll怎么办,多种dll问题解决方法分享

丢失VCRUNTIME140_1.dll是许多计算机用户经常遇到的问题之一。VCRUNTIME140_1.dll是一个动态链接库文件&#xff0c;它是Visual C Redistributable Package的一部分。Visual C Redistributable Package是微软为了支持运行使用Visual C编写的软件而提供的一个可再发行组件包。当…

SpringCloud-高级篇(十)

&#xff08;1&#xff09;单节点Redis问题 缓存大家都不陌生&#xff0c;在企业里面只要做缓存都会用到Redis&#xff0c;我们在使用的时候都是做的单节点部署&#xff0c;单节点部署是存在一些问题的&#xff0c;分布式缓存正是Redis的集群&#xff0c;正是为了解决单节点部署…

Linux调试工具—gdb

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;HEART BEAT—YOASOBI 2:20━━━━━━️&#x1f49f;──────── 5:35 &#x1f504; ◀️ ⏸ ▶️ ☰ …

Django 学习教程- Django模板(Template)

系列 Django 学习教程-介绍与安装-CSDN博客 Django 学习教程- Hello world入门案例-CSDN博客 前言 在上一章节中我们使用django.http.HttpResponse() 来输出 "Hello World&#xff01;"。该方式将数据与视图混合在一起&#xff0c;不符合 Django 的 MTV 思想。 本…

【Java进阶篇】JDK新版本中的新特性都有哪些

JDK新版本中的新特性都有哪些 ✔️经典解析✔️拓展知识仓✔️本地变量类型推断✔️Switch 表达式✔️Text Blocks✔️Records✔️封装类✔️instanceof 模式匹配✔️switch 模式匹配 ✅✔️虚拟线程 ✔️经典解析 JDK 8中推出了Lambda表达式、Stream、Optional、新的日期API等…

c++_08_操作符重载(操作符重定义) 友元

1 操作符标记 单目操作符&#xff1a; - -- * -> 等 双目操作符&#xff1a; - > < - << >> 等 三木操作符&#xff1a; ? : 2 操作符函数 2.0 前言 C编译器有能力把一个由操作…

Ubuntu之修改时区/时间

1、查看当前时间及时区状态 sudo timedatectl status # 显示当前时区为Asia/Shanghai 2、查看当前系统时间 sudo date 3、查看当前系统时间及时区 sudo date -R # 显示当前时间及对应时区&#xff0c;时区为“0800”北京时区 4、修改硬件时间 修改日期格式&#xff1a…

论虚继承的作用

虚继承 实验介绍 在上一小节中学习了多继承与多重继承,实际在开发的时候可能会遇到一种情况,既用到了多继承又用到了多重继承,这种继承方式通常又称为菱形继承。但这样一来就会产生新的问题,过多消耗空间。希望通过本小节学习能知道菱形继承以及产生的问题和解决方式。 …

buuctf-Misc 题目解答分解103-105

103.[GKCTF 2021]签到 追踪流发现类似flag 字符 f14g 下面有大量的是16进制字符 64306c455357644251306c6e51554e4a5a3046355355737764306c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e655…

动态内存管理篇

为什么要动态内存分配&#xff1f; 之前&#xff0c;我们向内存申请空间&#xff0c;有两种方式&#xff0c;一种是定义变量&#xff0c;一种是建立数组&#xff1b;但是&#xff0c;这两种方式都有缺陷&#xff0c;创建的空间大小是固定的&#xff0c;在程序的运行过程中&…