Linux基础:2:shell外壳+文件权限
shell外壳+文件权限
- 一.shell原理:
- 1.对比:windo GUI 和 shell
- 1.windo GUI
- 2. shell
- 2.为什么?是什么?怎么办?
- 1.为什么有shell
- 2.是什么?
- 3.怎么办?
- 4.补充:
- 二.linux权限管理:
- 1.基本概念:
- 1-1:用户切换
- 2.文件类型和访问权限:
- 1.文件类型:
- 2.访问权限类型:
- 2-1:文件权限值的表示方法:
- 2-2:文件权限的设置方法:
- 2-3:快速设置文件三个分区的权限
- 3.文件(目录)拥有者的改变:
- 4.文件(目录)所属组的改变:
- 5.补充root
- 6.umask 权限掩码
- 7.关于目录权限的三个情况:
- 3.文件共享tmp
- 1.文件共享:
- 2.粘滞位:
一.shell原理:
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。

1.对比:windo GUI 和 shell
1.windo GUI
我们使用的windo系统就满足图形化的一种交互给日常用户去使用的,是通过图形操作进行与操作系统的互联,通过图形化的这一个外壳实现自己的操作通过解释器与核心进行互联核心处理之后的结果返回出来到我们的图形化界面上面。
2. shell
关于shell 就是把用户输入的命令通过他的解释给核心,核心接收信息进行相关的操作,然后通过sheel把结果翻译并且展示出来:(两个外壳本质是一样的)
2.为什么?是什么?怎么办?
1.为什么有shell
1.用户是不善于直接和操作系统进行交互的所以需要一个shell外壳
2.是什么?
1.shell通过解释命令给内核,并且显示翻译内核的结果。
3.怎么办?
1.关于正常的命令:shell自己执行指令和内核互联完成这个命令,并且显示翻译内核的结果。
2.关于用户自定义的指令:shell不知道这个命令的正确性质,不会自己去执行指令,而是会去创建一个新的进程去执行这个命令。
3.shell一般完成简单并且没有风险的命令,创建的进程一般完成不是很容易并且有一定风险的命令。
4.shell相当于一个程序这个程序如果挂了你与操作系统之间的连接就挂了所以创建新的进程去解决容易出问题并且非常难的操作是一种处理问题的一种策略。
4.补充:
ps aux : 查看linux系统的进程列表展示:
top 实时显示linux系统的进程列表并且3秒更新一次。
每一次启动shell外壳程序都使用不同的进程号如果同时用用同一个账号连接两次Linux服务器他们的每个程序的进程都是不相同的如果在一个里面kill了sheel程序另一个连接不会收到任何影响:
二.linux权限管理:
1.基本概念:
linux有两种用户类型:
1.超级用户root #
2.普通用户username $
3.# 是超级用户的命令提示符 $是普通用户的命令提示符。
1-1:用户切换
- su 【用户名】 普通用户和root用户都适用
2.直接 su 切换root
3.sudo + 【一条命令】 使用root权限执行一条命令:
root切换到普通用户不需要输入密码:

普通用户切换到root用户需要输入root密码

通过sudo可以使用root权限执行一条命令
1.那么这个时候就有就有一个问题出现了,我们普通用户只要sudo一下输入一下密码就有root权限执行命令那么还要root有什么用呢?
其实并不是这样的在/etc/sudoers 有这样的一个配置文件需要root权限可以在配置文件中加入用户,如果当前执行sudo的用户并不在这个配置文件中那么命令不会执行并且报错:

2.文件类型和访问权限:
1.文件类型:
通过命令file可以查看文件详细信息:
补充:d:文件夹
-:普通文件(源代码,文档,音乐,视频,库 , 可执行文件 等等在linux下都是普通文件)
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等):支持随机访问
p:管道文件
c:字符设备文件(例如屏幕等串口设备):键盘 显示器 不支持随机访问
s:套接口文件

2.访问权限类型:
>1.只有文件的拥有者和root可以改变文件的权限。

2-1:文件权限值的表示方法:

2-2:文件权限的设置方法:
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
参数类型:
u 拥有者
g 所属组
o other(其他)
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
参数和权限这个地方怎么输入呢?
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

去除所有权限:chmod a-rwx text1

添加所有权限:chmod a-rwx text1

2-3:快速设置文件三个分区的权限

去除所有权限:chmod a-rwx text1
添加所有权限:chmod a-rwx text1

3.文件(目录)拥有者的改变:
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
常用选项:-R 递归修改文件或目录的拥有者:
补充:
1.如果普通用户想要把自己创建的一个文件更改拥有者为其他用户这个操作是不被允许的。
2.如果普通用户只想要把自己的这个文件的拥有人给到这个用户通过普通用户的身份做不到,通过sudo 进行命令提权!



4.文件(目录)所属组的改变:
c)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

5.补充root
>在root下不受任何权限的控制!!!!!!!!!!!!
补充·兴建组
userpadd 组名
6.umask 权限掩码
d)umask
功能:
查看或修改文件掩码
==新建文件夹默认权限:0666 ==
==新建目录默认权限:0777 ==
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:== mask & ~umask ==
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
目录对于X:可执行权限对于目录来说是可以进入这个目录。
普通文件对于X:可执行权限对于普通文件来说没有意义!对于一个可执行文件就有意义!

普通用户创建文件:

超级用户创建文件:

7.关于目录权限的三个情况:
1.对于一个目录有没有r权限,如果进入这个目录你不知道这个目录中有什么或者在目录外面想要通过ls看一下绝对路径目录中的内容你都看不了!
2.对于一个目录有没有W权限,说明你没有在这个目录中创建或者删除文件的权限:
3.对于一个用户没有文件的执行权限就不可以进入这个目录!
3.文件共享tmp
1.文件共享:
linux下在root目录下有一个tmp目录专门用来进行文件共享的!
1.这个tmp命令拥有者和所属组root ,普通用户都是other 用户对于这个目录有rwt的权限—》这个t就是粘滞位:

2.我们现在试一下把粘滞位给去掉变成正常的一个目录看一下!
2.我们在这个tmp目录下使用两个用户创建了两个目录,我们用其中一个用户去删除另一个用户的文件我们发现是可以删除的因为一个文件可不可以删除是看这个文件的所在的位置而不是这个文件是谁的!
2.粘滞位:
为什么会有粘滞位!
因为防止公共目录下other用户进行任意的文件删除增加了一个粘滞位的概念防止other用户在tmp目录下的不正常操作!
通过增加粘滞位的操作是不是确保公共空间文件的安全性!
不允许同other下乱删除文件!
相关文章:
Linux基础:2:shell外壳+文件权限
shell外壳文件权限 一.shell原理:1.对比:windo GUI 和 shell1.windo GUI2. shell 2.为什么?是什么?怎么办?1.为什么有shell2.是什么?3.怎么办?4.补充: 二.linux权限管理:…...
webpack 解决:TypeError: merge is not a function 的问题
1、问题描述: 其一、存在的问题为: TypeError: merge is not a function 中文为: 类型错误:merge 不是函数 其二、问题描述为: 想执行 npm run dev 命令,运行起项目时,控制台报错 TypeErro…...
datahub 中血缘图的实现分析,在react中使用airbnb的visx可视化库来画有向无环图
背景 做大数据的项目,必不可少的是要接触到数据血缘图,它在大数据项目中有着很重要的作用。 之前在公司也做过一些案例,也看过很多友商的产品,阿里的DataWork,领英的Datahub, datawork的血缘图使用的是 G6…...
二、判断语句
文章目录 1.if语句1)if判断语句基本格式2) 网吧上网3)if语句使用逻辑运算 2.if-else语句1)if-else的使用格式2)网吧上网 3.多重判断elif语句1) 多重判断elif2)例子3)注意点 4.if嵌套…...
龙智汽车行业客户案例:Jira数据中心版助客户解锁高效项目管理
龙智技术支持部负责人、Atlassian认证专家叶燕秀分享了她帮助某汽车企业落地Jira的故事,并详解了该公司选择Jira数据中心版的理由以及工具链的集成情况,为有同样需求的公司提供实践参考。 本文由叶燕秀口述内容整理而成 需求管理:从Excel表格…...
03 vi编辑器
vi编辑器的三种模式: 不同的模式下机键动作解释的意义是不一样的 编辑模式 插入模式 末行模式 文件的打开和关闭保存 移动光标...
Web界面自动化操作工具 - Selenium常见用法
Selenium是一个用于自动化浏览器操作的工具,常用于Web应用程序的测试和爬虫开发。 下面是一些Python Selenium的常见用法和代码示例: 1. 导入Selenium库和WebDriver: from selenium import webdriver2. 创建WebDriver实例: # …...
Openssl数据安全传输平台009:加密理论基础:哈希/非对称加密RSA/对称加密AES
文章目录 0. 代码仓库代码编译时候可能出现的错误 1. 哈希1.1 哈希算法的种类:1.2 使用的头文件1.3 哈希算法API1.3.1 详解md5 API1.3.2 sha1/sha224/sha256/sha384/sha512常用API 1.5 sha1代码测试1.4 在VS中添加预处理器定义1.5 哈希算法C代码封装的思路 2. 非对称加密RSA2.1…...
iPhone开发--Xcode15下载iOS 17.0.1 Simulator Runtime失败解决方案
爆句粗口,升级后公司网络下载iOS 17.0.1 Simulator Runtime一直出错,每次出错后都得重新开始下载,oh,f**k。上一次在在家里的网络升级成功。 解决办法一: 进入网址:https://developer.apple.com/download…...
Galaxy生信云平台|Maftools高效地汇总、分析、注释和可视化肿瘤基因突变MAF文件...
2023-10-25,Galaxy中国镜像站 UseGalaxy.cn 平台新增 5 个工具。 MAF Tools Maftools-突变景观图: 绘制肿瘤基因突变景观图Maftools-突变汇总: 汇总MAF文件中的突变信息Maftools-共突变与互斥突变: 计算共突变和互斥突变Maftools-队列比较:比较两个队列之…...
JS三种常见的存储机制
1.localStorage localStorage是HTML5引入的一种持久化存储机制,用于在浏览器中长期保存数据。localStorage中存储的数据没有过期时间,除非被显式清除或代码删除。存储在localStorage中的数据对于同一个域名下的所有页面都是共享的。localStorage可以存储…...
【Python机器学习】零基础掌握BaggingClassifier集成学习
何提高分类模型的稳定性和准确性? 在金融风控、医疗诊断或者社交媒体推荐等场景中,分类问题是常见的难题。但是,单一的分类模型(如SVM)在处理复杂或不均衡的数据集时可能会表现不佳。那么,有没有一种方法能够提高模型的稳定性和准确性呢? 假设一家银行想要通过机器学习…...
[晕事]今天做了件晕事26;gcc对strcmp/strncmp的优化
今天做了一件晕事,写了一个测试小程序,开头的程序例如下面片段。在后续又写了一些代码,进行编译,使用gdb查看可执行文件,怎么都得不到想要的结果,非常的纳闷,非常的奇怪。 int main() {char a[3]="ab";int b = strncmp(0, a, 1<...
【深度学习】使用Pytorch实现的用于时间序列预测的各种深度学习模型类
深度学习模型类 简介按滑动时间窗口切割数据集模型类CNNGRULSTMMLPRNNTCNTransformer 简介 本文所定义模型类的输入数据的形状shape统一为 [batch_size, time_step,n_features],batch_size为批次大小,time_step为时间步长,n_feat…...
ts | js | 爬虫小公举分享
Curl转Code 快速将curl转为各种语言的代码; 便于提取请求头之类, 或者微改直接使用 https://curlconverter.com/node-axios/ (有点慢, 但是很全)https://www.lddgo.net/convert/curl-to-code (没有axios, 我喜欢用axios) 使用… 抓取地址, 使用浏览器或者其他抓包工具都可, 这…...
实现el-table打印功能,样式对齐,去除滚动条
实现el-table打印功能,样式对齐,去除滚动条 // 整个页面打印 function printTable(id) {// let domId #js_index// if (id) {// domId #${ id };// }// let wpt document.querySelector(domId);// let newContent wpt.innerHTML;// let oldContent document.…...
2022年09月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 表达式len(“学史明理增信 ,读史终生受益”) > len(" reading history will benefit you ")的…...
【面试经典150 | 链表】两数相加
文章目录 写在前面Tag题目来源题目解读解题思路方法一:模拟 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到…...
vue路径中“@/“代表什么
举例: <img src"/../static/imgNew/adv/tupian.jpg"/>其中,/是webpack设置的路径别名,代表什么路径,要看webpack的build文件夹下webpack.base.conf.js里面对于是如何配置: 上图中代表src,上述代码就…...
java springboot2.7 写一个本地 pdf 预览的接口
依赖方面 创建的是 接口web项目就好了 然后包管理工具打开需要这些 import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; imp…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...









