Linux Shell和权限
目录
Shell命令及运行原理
权限
1.文件基本属性
2.文件权限值的表示方法
3.文件访问权限的相关设置方法
3.(1)chmod + 组名修改
3.(2)chmod + 二进制修改
3.(3)chown
3.(4)chgrp
3.(5)umask
4.目录权限
Shell命令及运行原理
Linux的操作系统,狭义上是指Linux的内核,广义上是指Linux内核+Linux外壳和对应的配套程序,其中,Linux外壳就是Shell。
Shell是包裹在Linux内核外部的一层软件层,帮用户进行命令行解释。
如下我输入的指令,都是通过shell来与Linux内核交流,如果收到命令,便会创建子进程去执行命令,不管成功与否,都不会危及到整个shell。shell父进程会继续进行命令行获取。
- 对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
- shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。
权限
1.文件基本属性
Linux下有两种用户:超级用户(root)、普通用户。
可以通过指令 adduser [用户名] 来添加用户,例如添加一个叫做 “kky” 的用户
adduser kky
在Linux中,文件的访问者分为
- 文件和文件目录的所有者:u---User
- 文件和文件目录的所有者所在的组的用户:g---Group
- 其它用户:o---Others
文件类型有
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
注意Linux系统不对文件后缀不区分,但是Linux中的软件可能会对文件后缀作区分。
基本权限
- 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “—”表示不具有该项权限
2.文件权限值的表示方法
如何看文件的这些信息呢?
通过ls -l可以查看文件的信息
其中最前面的 “-rw-rw-r--” 中的第一个“-”,代表着文件的类型,通过上面的表可以知道该文件为普通文件。 后面的“rw-rw-r--”,每三个一组,第一组为拥有者权限,第二组为所属组权限,第三组为other权限
其中,拥有者和other我们还挺好理解的,这里的所属组是什么意思呢?
在我们Linux系统,任何文件都要隶属于一个所属组,这个所属组是一批用户的集合,当然所属组也可以只有一个用户,所属组的名字以组长(也就是创建文件的那个人)的名字命名。
为什么要有所属组呢?
这是为了让拥有者信任的用户能够对该文件进行操作,对于other用户,则可以通过权限来限制他们的操作。
从上图我们也没有看到谁是other,只显示了拥有者和所属组,因为除了拥有者所属组,其他的统称之为other。
文件有rwx(r read读 w write写 x execute 执行)权限
如下文件的权限就是对拥有者有读和写权限,对所属组有读和写权限,对other有读权限。
3.文件访问权限的相关设置方法
3.(1)chmod + 组名修改
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
如下,删除了文件main.c的u(拥有者)的读权限
这里u也可以换成g (所属组)或者 o(other), - 可以换成+,r也可以换成w或者x。如下
a代表all(对所有组都做处理)
还有一个例子,我们删除了拥有者的读写权限,发现文件不让我们读写了,但是明明我们还是所属组的成员,这为什么也不让我们读写了呢?
因为用户在匹配身份的时候,只能匹配一次并且是最贴近的身份,你是user你就只能匹配到user这里,因此就算你也是所属组里的,也不能通过所属组权限去访问文件
超级管理员不受权限约束
3.(2)chmod + 二进制修改
对于下面这个文件的权限 “rw-rw-r--”,我们可以将他拆分为“rw-”、“rw-”、“r--”,这分别代表三个组,这是我们之前讲过的内容,现在我们可以将这三个组转化为二进制数。
“rw-”代表110 也就是6
“rw-”代表110 也就是6
“r--”代表100 也就是4
懂得了上面这个原理,我们便可以通过二进制来修改文件的权限了
3.(3)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
chown要么使用root账户处理,要么使用sudo提权,才可以更改拥有者
3.(4)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
一样需要root权利
3.(5)umask
功能:查看或修改文件掩码
新建文件默认权限=0666(第一个0代表八进制)
新建目录默认权限=0777 (第一个0代表八进制)
这里提出了文件掩码的概念,什么是文件掩码呢? 看下图
新建了一个newfile,他的权限为“rw-rw-r--” 代表0664。从上面可知,新建文件的默认权限为0666,为什么变成了0664?
我们通过umask指令来查看Linux系统的文件掩码,查到是0002
666为(110 110 110)
664为(110 110 100)
002为(000 000 010)
我们发现文件掩码所出现的位置,被置为了0,这里看起来有点像减法。
其实他并不是减法,因为权限的二进制的目的就是想让某个组拥有或失去权限,如果是减法就乱了套了。
结论是: 最终权限 = 起始权限 去掉 权限掩码中出现的权限 (去掉是指清零该比特位)
或者说: 最终权限 = 起始权限 & (~umask)
如下,我们通过设置umask进行了验证,大家还可以多验证一下,看看结论是不是这样。(要注意后面需要改回来(一般是0002),不然后面新建文件会不可访问或修改比较麻烦)
4.目录权限
我们通过mkdir创建了一个目录,目录也有他自己的权限。
那么这些权限分别代表什么呢?
- 是否允许一个指定用户进入一个目录,需要x权限
- 是否允许一个指定用户查看目录的文件列表,需要r权限
- 是否允许一个指定用户在当前目录下新建文件或者删除文件,需要w权限
删除当前目录下的文件跟w权限有关,但是如果有一个共享的目录,大家都可以在这里面读文件,写文件,但与此同时,大家也可以删除文件,为了防止群众里面有坏人删除文件,就必须把目录的w权限关闭,这样一来确实没办法删除了,但是也没办法写入了,这个可怎么办?
Linux有一种粘滞位目录,该目录下的文件只能由以下3种人员删除
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
这样一来就可以防止其他人员删除文件了。
使用chomd +t [文件名] 就可以操作了,这里不需要写o+t(因为粘滞位默认就是给的other)
相关文章:

Linux Shell和权限
目录 Shell命令及运行原理 权限 1.文件基本属性 2.文件权限值的表示方法 3.文件访问权限的相关设置方法 3.(1)chmod 组名修改 3.(2)chmod 二进制修改 3.(3)chown 3.(4)chgrp 3.(5)umask 4.目录权限 Shell命令及运行原理 Linux的操作系统,狭义上是…...

Git同时配置Gitee和GitHub
Git同时配置Gitee和GitHub 一、删除原先ssh密钥二、生成密钥 这里的同时配置是针对于之前配置过单个gitee或者github而言的,如果需要看git从安装开始的配置,则可以看这一篇文章 git安装配置教程 一、删除原先ssh密钥 在C盘下用户/用户名/.ssh文件下找到…...

IGP高级特性简要介绍(OSPF-上篇)
OSPF高级特性 一、OSPF_提升故障收敛及网络恢复速度 1.FRR与BFD快速恢复故障 1.1 FRR 在传统转发模式下,当到达同一个目的网络存在多条路由时,路由器总是选择最优路由使用,并且下发到FIB表指导数据转发。 当最优路由故障时,需…...
Oracle-Ogg集成模式降级为经典模式步骤
前言: Ogg集成模式降级为经典模式的场景比较少,因为降级为经典模式会导致无法支持压缩表同步,XA事务,多线程模式,PDB模式同步等功能,除非遇到集成模式暂时无法解决的bug或者环境不支持集成模式,比如DG备库环…...

链表面试OJ题(1)
今天讲解两道链表OJ题目。 1.链表的中间节点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个…...

[极客大挑战 2019]Upload 1
题目环境: 根据题目和环境可知此题目是一道文件上传漏洞 编写一句话木马脚本<?php eval($_POST[shell]);?>将脚本文件更改为jpg图片文件我这里是flag.jpg上传文件并burpsuite抓包Repeater重放 报错一句话木马里面有<?字符 换一种一句话木马继续编写木马…...

OpenFeign讲解+面试题
一:OpenFeign是什么? 是一个声明式的web客户端,只需要创建一个接口,添加注解即可完成微服务之间的调用 二:调用微服务的方式? ribbon restTemplate方式调用openFeign通过接口注解的方式调用 三:如何使用OpenFeign&…...

嬴图 | LLM+Graph:大语言模型与图数据库技术的协同
前言 2022年11月以来,大语言模型席卷全球,在自然语言任务中表现卓越。尽管存在一系列伦理、安全等方面的担心,但各界对该技术的热情和关注并未减弱。 本文不谈智能伦理方面的问题,仅集中于Ulitpa嬴图在应用中的一些探索与实践&a…...
微信小程序下载文件和转发文件给好友总结
这段时间公司让我负责小程序的一些功能开发,回想上次开发小程序还是在上一次,这次开发小程序主要实现的功能就是转发文件给好友和下载文件,总结一下这次遇到的各种问题和解决方法。 下载文件 首先正常下载 wx.downloadFile({url: https://img.haihaina.cn/月度支出表.xls,…...

一文掌握 Apache SkyWalking
Apache SkyWalking SkyWalking是一个开源可观测平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking 提供了一种简单的方法来保持分布式系统的清晰视图,甚至跨云。它是一种现代APM,专为云原生、基于容器的分布式系…...
外贸网站优化常用流程和一些常识
外贸网站google排名,总以为是单个网页标签的优化过程。 显然,这些观点都是错误的,九凌网络是做谷歌优化服务,九凌网络跟大家分享外贸网站Google优化常用流程和一些常识需要做以下几个步骤: 第一步:网站诊断࿰…...
Hive的时间操作函数
目录 前言函数使用介绍实际使用判断该天是星期几判断该天对应的周(包含一周开始和结束) 前言 hive 里面的时间函数有很多,今天单讲dayofweek函数,背景:有时候不仅要出日报,还要出周报,需要很多…...
【Web安全】CORS跨域资源共享漏洞
文章目录 前言一、漏洞概述二、漏洞原理三、CORS响应头类型四、漏洞挖掘五、修复建议前言 本篇文章主要介绍CORS跨域漏洞产生的原理,漏洞复现过程,挖掘手段以及如何进行修复,文章难免会有失误,烦请留下宝贵建议,谢谢! 一、漏洞概述 跨域资源共享(CORS)是一种浏览器机制…...

IntelliJ IDEA 如何修改默认Maven仓库地址
在使用idea过程中,每次新建项目或者打开项目时,maven仓库地址都会变为默认地址。如何修改默认地址,让其保持不变,如下这种方式可以简单快捷的设置。 1.打开idea,取消项目自动加载 2.点击 Customize,然后再点击 All se…...
Vue3 <script setup>是什么?作用?
结论先行: <script setup> 是 Vue3 的语法糖,简化了组合式 API 的写法,实现了 “顶层的绑定”。例如: ① 声明的属性和方法无需 return,就可以直接在模板使用; ② 引入组件的时候,会自…...
2.9 CSS 响应式布局
1.媒体:media 媒体类型: all:检测所有设备。screen:检测电子屏幕,包括:电脑屏幕、平板屏幕、手机屏幕等。print:检测打印机 媒体特性: width:检测视口宽度。max-width:…...

vue使用websocket与springboot通信
WebSocket是HTML5下一种新的协议,它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 在很多项目中,都要用到websocket,使得前端页面与后端页进行实时通信,例如,实时查询…...

ChatGPT 实际上是如何工作的?
添加图片注释,不超过 140 字(可选) ChatGPT 操作的两个主要阶段 我们再用谷歌来打个比方。当你要求谷歌查找某些内容时,你可能知道它不会——在你提出要求的那一刻——出去搜索整个网络来寻找答案。相反,谷歌会在其数…...
【SSD1306 OLED屏幕测试程序 (开源)orangepi zero2 全志H616 】.md updata: 23/11/07
orangepi zero2 H616 SSD1306 OLED屏幕测试程序 orangepi zero2 配置wiringpi 库后,突发奇想构建一个测试oled屏幕的程序,放一个蜗牛每次移动一个像素点,实时显示蜗牛的步数,后面要显示其他内容在此代码上修改即可,如…...

【python VS vba】(5) 在python中使用xlwt操作Excel(待完善ing)
目录 1 什么是xlwt 2 导入xlwt 3 相关语法 3.1 创建新的workbook 3.2 创建新的sheet 3.3 保存workbook 4 python里表格的形式 4.1 矩阵 4.2 EXCEL的数据形式 完全等于矩阵的数字结构 4.3 python里矩阵 5 具体代码 5.1 代码 5.2 结果 5.3 要注意的问题 5.3.1 不能…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...