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)

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看看顶级外贸业务员是如何跟进客户的?

许多外贸业务员,都碰到过客户跟进上的困难。那到底外贸业务员如何跟进客户,才能越跟越近,最终成交呢?本篇文章设定了几个客户回复的场景,看看顶尖销售都是怎么应对的吧? 一 客户说暂时没有需求 1.问清楚客…

案例研究|腾讯音乐娱乐集团与JumpServer共探安全运维审计解决方案

近年来,得益于人民消费水平的提升以及版权意识的加强,用户付费意愿和在线用户数量持续增长,中国在线音乐市场呈现出稳定增长的发展态势。随着腾讯音乐于2018年12月上市,进一步推动了中国在线音乐市场的发展。 腾讯音乐娱乐集团&a…

数据可视化:地图

1.基础地图的使用 如何添加颜色表示层级 代码实现 """基础地图的使用 """ from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 9),("上海市…

WebGL:基础练习 / 简单学习 / demo / canvas3D

一、前置内容 canvas:理解canvas / 基础使用 / 实用demo-CSDN博客 WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗_webgl培训-CSDN博客 二、在线运行HTML 用来运行WebGL代码,粘贴--运行&#xff…

LangChain+LLM实战---Midjourney(v5.1) Prompt深度剖析

原文:Anatomy of Midjourney Promps: In-Depth Study for effective Prompting Strategies — V5.1 examples 作者:Michael King 你是否曾经发现自己盯着Midjourney的空白画布,手指悬停在键盘上,让我问自己:“我应该…

前端面试题之CSS篇

1、css选择器及其优先级 标签选择器: 1类选择器、属性选择器、伪类选择器:10id选择器:100内联选择器(style“”):1000!important:10000 2、display的属性值及其作用 属性值作用none元素不显示&#xff0c…

使用VNC链接远程桌面

一、本地VNC客户端 本地主要需要一个VNC客户端,用来远程连接服务器端的VNC(在不安装Web版本VNC情况下)。VNC客户端下载地址: VNC客户端下载 二、安装Xfce桌面环境 在远程服务器控制台中安装Xfce桌面(这个桌面环境比…

CSC公派遭美德拒签|计算机专业老师终赴意大利都灵理工大学访学

C老师拟申报CSC访学项目,希望先申请美国,并做好了一旦拒签再申请其它国家的心理准备。我们先用普渡大学的邀请函助其申报CSC,并顺利获批,但不出所料地被美国拒签了;很快又申请到德国奥芬堡应用技术大学,但不…

【Linux】简单部署Yearning并结合内网穿透实现公网访问

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单,高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开…

Jakarta-JVM篇

文章目录 一.前言1. 1 JVM-堆常用调参1.2 JVM-方法区常用参数1.3 JVM-codeCache 二.JVM内存结构三. 对象创建四. JVM垃圾回收算法4.1 可达性分析算法4.1.1 对象引用4.1.2 回收方法区. 4.2 分代回收4.3 标记清除4.4 标记复制4.5 标记整理 五.垃圾回收器5.1 根节点枚举5.2 安全点…

打造高效运营底座,极智嘉一体化软件系统彰显科技威能

在仓储成本和物流需求日益增加的今天,创新且高效的物流机器人解决方案能够显著提升物流运营效率,降低物流成本,实现智能化、精益化、一体化的物流管理。全球仓储机器人引领者极智嘉(Geek)以「一套系统,天生全能」为准则&#xff0…

python脚本-网页爬虫获取网页图片

python脚本-网页爬虫获取网页图片 代码 import requests import re import time url"http://10.9.47.154/python-spider/" # 爬取网站的url headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …

亚马逊云科技大语言模型下的六大创新应用功能

目录 前言 亚马逊云科技的AI创新应用 ​编辑 Amazon CodeWhisperer Amazon CodeWhisperer产品的优势 更快地完成更多工作 自信地进行编码 增强代码安全性 使用收藏夹工具 自定义 CodeWhisperer 以获得更好的建议 如何使用Amazon CodeWhisperer 步骤 1 步骤 2 具体…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

【漏洞复现】IIS_7.o7.5解析漏洞

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 1.5、修复建议 1.1、漏洞描述 漏洞原理: cgi.fix_path1 1.png/.php该…

WPF中依赖属性及附加属性的概念及用法

完全来源于十月的寒流,感谢大佬讲解 依赖属性 由依赖属性提供的属性功能 与字段支持的属性不同,依赖属性扩展了属性的功能。 通常,添加的功能表示或支持以下功能之一: 资源数据绑定样式动画元数据重写属性值继承WPF 设计器集成 …

【数据结构】单链表OJ题

前言: 本节博客将讲解单链表的反转,合并有序链表,寻找中间节点及约瑟夫问题 文章目录 一、反转链表二、合并有序链表三、链表的中间结点四、环形链表的约瑟夫问题 一、反转链表 要反转链表,我们需要遍历链表并改变每个节点的 next 指针&#…

大数据毕业设计选题推荐-旅游景点游客数据分析-Hadoop-Spark-Hive

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

webgoat-Insecure Deserialization不安全的序列化

A(8)不安全的反序列化 反序列化是将已序列化的数据还原回对象的过程。然而,如果反序列化是不安全的,那么恶意攻击者可以在序列化的数据中夹带恶意代码,从而在反序列化时执行这些代码。这种攻击被称为反序列化。 什么…

雨洪水资源管理远程监控平台

雨洪水资源管理远程监控平台 汛期来临时,及时获得河道水库的水位涨幅数据对开展防汛抗洪工作至关重要,大量河道水库分布在远离城市的区域,而且分散,尤其是在紧急防汛阶段,如果只依靠传统人力巡查获得河道水位数据必将耗…