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

文章目录

  • 前言
  • 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 使用和管理中,更加自信和高效地处理各种权限相关的任务。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字集成系统设计——逻辑综合

目录 一、概述 1.1 综合的分类 1.2 逻辑综合的基本架构 1.3 逻辑综合的内部流程 1.3.1 RTL代码转译&#xff08;Translation&#xff09; 1.3.2 逻辑级优化&#xff08;Optimization&#xff09; 1.3.3 工艺映射&#xff08;Mapping&#xff09; 二、优化策略 2.1 资源…

Linux之进程管理

什么是进程 在linux中每个执行的程序都称为一个进程&#xff0c;每个进程都分配一个ID号&#xff08;pid进程号&#xff09;。每个进程都可能以两种方式存在&#xff0c;即前台和后天。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作&#xff0c;但屏幕…

AD教程 (二十一)模块化布局规划

AD教程 &#xff08;二十一&#xff09;模块化布局规划 原理图是按照我们的功能模块去进行排布划分的 利用交叉选择模式分屏快速进行模块化布局 分屏&#xff0c;选中任意文档&#xff0c;右击&#xff0c;点击垂直分割 交叉选择模式&#xff0c;点击工具&#xff0c;交叉选…

【模拟电路】软件Circuit JS

一、模拟电路软件Circuit JS 二、Circuit JS软件配置 三、Circuit JS 软件 常见的快捷键 四、Circuit JS软件基础使用 五、Circuit JS软件使用讲解 欧姆定律电阻的串联和并联电容器的充放电过程电感器和实现理想超导的概念电容阻止电压的突变&#xff0c;电感阻止电流的突变LR…

基于SpringBoot的校园二手闲置交易平台

基于SpringBoot的校园二手闲置交易平台的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录界面 管理员界面 摘要 本文基于Spring Boot框架设计并实现了一款…

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

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

git rebase应用场景三

文章目录 git rebase应用场景三 git rebase应用场景三 在我们的开发分支中 假设我们修改一个文件 提交一个版本 再回到master分支 同时也去修改1.txt文件&#xff0c;提交一个版本 这样相当于master分支提交了一次&#xff0c;dev也提交了一次 然后回到dev分支 此时会报错…

【网络安全】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…

gRPC之内置Trace

1、内置Trace grpc内置了客户端和服务端的请求追踪&#xff0c;基于golang.org/x/net/trace包实现&#xff0c;默认是开启状态&#xff0c;可以查看事 件和请求日志&#xff0c;对于基本的请求状态查看调试也是很有帮助的&#xff0c;客户端与服务端基本一致&#xff0c;这里…

Delphi6函数大全4-SysUtils.pas

Delphi6函数大全4-SysUtils.pas首部 function FormatFloat(const Format: string; Value: Extended): string; $[SysUtils.pas功能 返回浮点数类型以指定格式字符串Format转换成字符串说明 FormatFloat(,.00, 1234567890) 1,234,567,890.00参考 function …

element表格排序功能

官方展示 个人项目 可以分别对每一项数据进行筛选 注&#xff1a;筛选的数据不能是字符串类型必须是数字类型&#xff0c;否则筛选会乱排序 html <el-table :data"tableData" border height"600" style"width: 100%"><el-table-co…

实验六——cache模拟器实验

前言 本次实验的主要目的是熟悉cache的原理。加深对cache的映像规则、替换方法、cache命中与缺失的理解。通过实验对比分析映像规则对cache性能的影响。 实验内容一&#xff1a;熟悉模拟程序 阅读给出的cache模拟程序&#xff08;cachesimulator.cpp&#xff09;&#xff0c;…

Linux学习之系统编程1(关于读写系统函数)

写在前面&#xff1a; 我的Linux的学习之路非常坎坷。第一次学习Linux是在大一下的开学没多久&#xff0c;结果因为不会安装VMware就无疾而终了&#xff0c;可以说是没开始就失败了。第二次学习Linux是在大一下快放暑假&#xff08;那个时候刚刚过完考试周&#xff09;&#xf…

基于Java在线商城系统设计实现(源码+部署文档+讲解视频)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌&#x1f345; 文末获取源码联系 &#x1f345;&#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

目标检测-Two Stage-Mask RCNN

文章目录 前言一、Mask RCNN的网络结构和流程二、Mask RCNN的创新点总结 前言 前文目标检测-Two Stage-Faster RCNN提到了Faster RCNN主要缺点是&#xff1a; ROI Pooling有两次量化操作&#xff0c;会引入误差影响精度 Mask RCNN针对这一缺点做了改进&#xff0c;此外Mask …

Airtest的iOS实用接口介绍

前段时间Airtest更新了1.3.0.1版本&#xff0c;里面涉及非常多的iOS功能新增和改动&#xff0c;今天想详细跟大家聊一下里面的iOS设备接口。 PS&#xff1a;本文示例均使用本地连接的iOS设备&#xff0c;Airtest版本为1.3.0.1 。 安装接口&#xff1a;install、install_app …

使用css实现 Typora markdown 标题自动编号

第一&#xff0c;找到主题文件夹 第二&#xff0c;复制下面代码放入 AutoNumber.css文件中 body {counter-reset: h1; }#write h1, .markdown-section h1 {counter-reset: h2; }#write h2, .markdown-section h2 {counter-reset: h3; }#write h3, .markdown-section h3 {counte…

2023 NCTF writeup

CRYPTO Sign 直接给了fx,gx&#xff0c;等于私钥给了&#xff0c;直接套代码&#xff0c;具体可以参考&#xff1a; https://0xffff.one/d/1424 fx [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…

linux调试笔记

文章目录 基本启动调试与附加进程断点程序运行控制tui模式查看堆栈与变量监视变量多线程调试 扩展自定义跳转命令解析自定义类型禁用动态库自动加载设置源码路径断点时执行命令gdbserver远程调试 gdb脚本QtCreator调试Linux下处理编译、运行时的一些问题undefined symbol问题-n…

【C# 技术】 C# 常用排序方式——自定义数据排序

C# 常用排序方式——自定义数据排序 前言 在最近的项目中经常会对C#中的数据进行排序&#xff0c;对于基本数据类型&#xff0c;其排序方式比较简单&#xff0c;只需要调用内置算法即可实现&#xff0c;但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦&…