【从零开始学习Linux】一文带你了解Shell外壳及用户权限(二)

🚩纸上得来终觉浅, 绝知此事要躬行。
🌟主页:June-Frost
🚀专栏:Linux入门

🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具,使得拥有基本编写代码的能力。

🔥该文章主要了解Shell外壳(理论)及用户权限,该系列分为两部分进行总结叙述。第一部分包含了shell外壳的理论知识以及部分权限知识,请看这里👉【从零开始学习Linux】一文带你了解Shell外壳及用户权限(一),而该篇为第二部分,将继续详细讲述用户权限的相关知识。

目录:

  • ⌛️前言:
  • ⌛️ 更改文件权限隶属角色
  • ⌛️ 文件类型
  • ⌛️ 目录权限
  • ⌛️ umask权限掩码
  • ⌛️ 粘滞位
  • ❤️ 结语

⌛️前言:

 在Linux系统中,文件权限用户隶属角色是两个非常重要的概念。通过更改文件权限,我们可以控制谁可以读取、写入或执行特定文件或目录;而通过更改用户隶属角色,我们可以改变文件的拥有者和所属组,从而更好地管理文件和目录的安全性和访问权限。

 在第一部分中,我们已经介绍了如何更改文件权限,包括使用chmod命令以符号表示法和数字表示法来修改文件的读、写和执行权限。这些操作可以帮助我们确保只有授权的用户能够访问特定的文件或目录,从而提高系统的安全性。

 然而,仅仅更改文件权限并不足以保护文件免受未经授权的访问。如果系统受到攻击,攻击者可能会尝试通过提升自己的用户隶属角色来获取更高的权限。所以,我们需要了解如何更改文件权限隶属的角色。


⌛️ 更改文件权限隶属角色

 在Linux中,你可以使用chown命令来更改文件或目录的所有者和所属组。

chown

  • 语法chown [选项] 新所有者 文件/目录
  • 功能:更改文件或目录的所有者和所属组。
  • 说明:① 新所有者可以是用户名或用户ID,也可以是用户名和组名的组合,用空格隔开。② 只有超级用户(root)或文件的当前拥有者(被授权) 才能更改文件的所有者和所属组。

 📘如果想同时修改拥有者和所属组,可以使用 用户名:组名 的组合。

📗一些常用的选项:

  • -R 递归地更改目录及其子目录中的所有文件的所有者和所属组。
  • -v 显示详细的操作信息。
  • -c 只显示发生更改的文件或目录的操作信息。
  • -f 忽略错误信息,不显示错误信息。

 此外,在Linux中chgrp也可以修改用户隶属角色。

chgrp

  • 语法chgrp [参数] 用户组名 文件名
  • 功能:修改文件或目录的所属组。
  • 常用选项-R 递归修改指定目录下的所有文件及子目录。

这两个命令只有超级用户(root)或文件的当前拥有者(被授权) 才能更改 进行说明:

 在Linux系统中,文件的拥有者和所属组是与系统安全和权限管理紧密相关的属性。为了确保系统的安全性和稳定性,只有具有管理员权限的root用户或其授权(被添加到白名单)的用户才能更改文件的拥有者和所属组。

 普通用户在没有适当权限的情况下更改文件的拥有者或所属组可能会导致系统不稳定或其他用户的隐私泄露。此外,为了防止恶意用户更改重要系统文件的拥有者和所属组,从而获得不当的权限,Linux系统采取了严格的权限管理策略。

 当普通用户需要进行此类操作时,他们可以通过以下方法获得临时的root权限:

  • 使用su命令切换到root用户。
  • 使用sudo命令执行特定的操作并获得root的权限。

 即使获得了root权限,用户也应谨慎操作,确保了解正在执行的操作的后果。


⌛️ 文件类型

 文件类型可以反应出该文件属于哪一种类别,可以被哪些软件操作。在Windows操作系统中,文件类型通常使用后缀标识,但是Linux系统下的文件类型是通过文件属性字段来体现的,文件属性字段由10个字符组成,后面九个字符表示每个身份对应的权限,而第一个字符表示文件类型

📘文件类型可以分为以下几种:

  • - 普通文件:这是Linux中最常见的一种文件类型,用于存储文本、数据等。可以细分为纯文本文件,源代码,图片,视频,库,可执行文件等。

  • d 目录文件。

  • b 块设备文件:磁盘被视为块设备文件的一种常见形式,因为它具有块设备的特性,如支持随机访问、可以独立地读写等。

  • c 字符设备文件:字符设备通常没有内部缓冲区,数据会立即传输到设备或从设备中读取,所以对字符设备的读写操作是实时的,不会有额外的延迟。同时,字符设备通常是顺序访问的,即按照数据的顺序进行读写操作,不支持像块设备那样的以块为单位进行读写。键盘,显示器,打印机等就是常见的形式。

  • l 软链接:链接文件使用ln命令创建,软链接(也称为符号链接)则类似于Windows的快捷方式,它指向目标文件或目录的路径,可以随时修改和更新。

  • p 管道文件:被用于进程间通信的一种特殊文件类型。
  • s 套接口文件(Socket):用于进程间网络通信。

 通过使用file指令可以辨识文件类型。

⏰注意:对于Linux系统来说,文件类型是不看后缀标识的,但是在上层工具上(例如,编译器)是需要后缀的。此外,在应用级别上,文件名后缀可以方便地表示出文件的类型、内容或者格式,对于识别和管理文件具有很大的帮助。


⌛️ 目录权限

目录权限是文件系统中的另一个重要组成部分,它决定了用户对目录及其内容的访问和操作能力。与文件权限类似,目录权限也分为读、写和执行三种基本权限,分别对应着用户对目录的查看、修改和执行操作。

 对一个目录来说:

  • 拥有执行权限才可以进入目录

  • 拥有读权限才可以查看目录下的文件属性列表

  • 拥有写权限才可以在目录中创建,删除文件,包括修改文件名

🌟 注意:没有写权限是无法改目录内的文件名的,但是可以修改目录内的文件权限。这是因为在改变文件的名称时,操作系统实际上是在删除原来的文件名并将其替换为新的文件名。这个操作涉及到在目录中修改文件记录,需要写入权限才能完成。但是修改文件权限只需要更新元数据即可,这些元数据通常不需要写入权限就可以查看和修改


⌛️ umask权限掩码

 每当我们默认创建一个文件时,会发现默认权限显示为rw-rw-r--,反应到八进制数字表示法就是664,创建一个目录时,发现默认权限为rwxrwxr-x,反应到八进制数字表示法就是775。

 这种现象的出现是初始权限和权限掩码的共同作用下形成的。为了防止未经授权的用户执行文件并且大部分文件也都不是可执行文件,所以系统默认创建的文件是不具有执行权限,初始权限就表示为666,但是对于一个目录,它本身就是用来存储文件和子目录的,需要允许其他用户在此目录下创建、删除和修改文件,所以目录的初始权限就是777。

 在Linux系统下,提供了umask权限掩码,它的存在让用户可以定制一个文件被创建时的默认权限,它是一个由3个八进制的数字所组成的值,将初始权限屏蔽权限掩码后,即可产生建立文件时预设的权限。

 在shell中可以直接运行umask命令来查看当前shell的umask值。

  为了让大家更好的理解,来看图👇

🔭如果umask中1的部分对应的初始权限本身就是0,就不需要处理了。我们可以将最终形成的默认权限看作是通过 起始权限&(~umask) 得来的。


⌛️ 粘滞位

 在Linux系统中,/tmp目录作为系统的临时文件夹,可以实现多个用户之间的文件共享,为了保证这种功能,会将other对应的读,写,执行权限全部放开

 但是在前文中,我们已经了解到如果目录中有写权限,是可以对内部文件进行删除的。所以,为了防止普通用户随意删除或移动其他用户的临时文件,系统给共享目录的other新增了一个粘滞位(t)。

 粘滞位不仅拥有执行(x)的意义,同时进一步对目录权限进行特殊限定:只有该目录下的文件的所有者和超级管理员(root)可以删除或移动该文件,即使其他用户有该目录的写权限,也无法删除或移动不属于他们的文件。


❤️ 结语

 文章到这里就结束了,如果对你有帮助,你的点赞将会是我的最大动力,如果大家有什么问题或者不同的见解,欢迎大家的留言~

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

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

相关文章

抖音自动发评论之论人工智能AI的应用和发展趋势

人工智能(Artificial Intelligence,AI)是目前国际上热门的科技话题之一。它是计算机科学中的一个分支,旨在创造能够智能地工作、学习、感知、理解和决策的机器。人工智能的应用范围十分广泛,包括语音识别、自然语言处理…

冰点还原精灵_Deep Freeze Standard v8.60.020.5592中文版

eep Freeze(又被成为冰点还原精灵)是Faronics公司出品的一款简单易用的系统还原软件,使用能够帮助用户轻松将系统还原到安装该款软件之后状态,避免因为病毒的入侵以及人为的对系统无意或无意的破坏,让你的系统始终完美…

【LeetCode】每日一题 2023_11_12 每日一题 Range 模块(线段树)

文章目录 刷题前唠嗑题目:Range 模块题目描述代码与解题思路 刷题前唠嗑 LeetCode? 启动!!! 嗯?怎么是 hard,好长,可恶,看不懂,怎么办 题目:Range 模块 题…

全国平均风速数据,有图有数据!

全国平均风速数据是一份重要的气象数据,它反映了全国各地的风速情况,对于气象预测、能源开发、环境保护等方面都有重要的意义。 本文将详细介绍全国平均风速数据的来源、统计方法和应用场景,并分析其变化趋势和影响因素。 数据基本信息&#…

【MySQL】MySQL中的锁

全局锁 全局锁是对整个数据库实例加锁,整个库处于只读状态。 flush tables with read lock 适用场景 全局锁适用于做全库逻辑备份,但是整个库处于只读状态,在备份期间,所有的更新操作、DDL将会被阻塞,会对业务产生影…

记一次前后端分离项目跨域导致的set-cookie失效问题解决方案

起因公司项目使用了springsecurity的基础登录进行认证授权,而基础登录使用的是sessioncookie的形式,项目前后端分离,前端调接口的时候就会出现,登陆后点击其他页面,提示未登录跳转登录页的情况,排查了一下问…

图论14-最短路径-Dijkstra算法+Bellman-Ford算法+Floyed算法

文章目录 0 代码仓库1 Dijkstra算法2 Dijkstra算法的实现2.1 设置距离数组2.2 找到当前路径的最小值 curdis,及对应的该顶点cur2.3 更新权重2.4 其他接口2.4.1 判断某个顶点的连通性2.4.2 求源点s到某个顶点的最短路径 3使用优先队列优化-Dijkstra算法3.1 设计内部类…

CPD:使用restAPI和cpd-cli命令创建DMC实例

环境 Red Hat Enterprise Linux release 8.6 (Ootpa)OCP 4.12.22IBM CP4D 4.8.0Data Management Console 3.1.12 (DMC for CPD 4.8.0) 注:使用了fyre VM。 创建DMC实例 准备 首先export环境变量: . ./stg_env.sh把 cpd-cli 放到PATH里。编辑 ~/.ba…

从GPT定制到Turbo升级再到Assistants API,未来AI世界,你准备好了吗?

引言 在OpenAI DevDay发布会上,OpenAI再次震撼整个人工智能行业,为AI领域带来了重大的更新。CEO Sam Altman宣布推出了定制版本的ChatGPT,这意味着用户现在可以根据自己的需求打造个性化的GPT,并分享至GPT Store。这一消息对于受A…

iText v1.8.1(OCR截图文字识别工具)

iText for mac是一款OCR(光学字符识别)工具,可以从图片中识别文字,适用于从扫描版的PDF等任意图片中提取文字。 使用iText,您可以方便快捷地从图片中摘抄和批注文字,满足您的各种需求。其自带截图功能&…

基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码

基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于果蝇算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于果蝇优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

upload-labs关卡5(点和空格绕过)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第五关通关思路1.看源代码2.点和空格绕过3、验证上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试&#xff0…

Unity中雾效的实现方法二

文章目录 前言一、声明雾效所需要的内置变体二、在 v2f 中声明顶点传入片段中的雾效插值器三、 在顶点着色器中计算雾效采样四、在片元着色器中进行雾效颜色混合在这里插入图片描述 五、最终效果 前言 Unity中雾效的实现方法二,使用 Unity 自带的方法实现&#xff…

JVM及其垃圾回收机制(GC)

目录 一.JVM内存区域划分 二.JVM类加载机制 类加载过程 类加载的时机 双亲委派模型 三.JVM垃圾回收机制(GC) GC工作过程 1.找到垃圾/判断垃圾 (1)引用计数【python/PHP】 (2)可达性分析【Java】 2.对象释放…

shell 语法介绍

大家好,我是蓝胖子,在日常开发中或多或少都会接触到shell脚本,可以说会shell脚本是一位后端开发的基本功,今天我将会花上一篇文章总结下常见的shell的语法,学完本篇,相信简单的shell脚本就能够看懂了&#…

uniapp的实战总结大全

🙂博主:冰海恋雨 🙂文章核心:uniapp部分总结 目录 ​编辑 目录 前言: 解决方案 1. 跨平台开发 2. Vue.js生态 3. 组件库 4. 自定义组件 5. Native能力 6. 插件生态 7. 性能优化 写法 1. 模板&#xf…

基于范数求解缩放因子方法的MIMO系统预编码技术matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. MIMO系统模型 4.2. 基于范数求解缩放因子的预编码技术 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 。。。。。。。。。。。。。。。…

Hbuilder介绍,uniapp框架

Hbuilder对程序前端页面进行开发(包括android,ios,小程序,web等等),其实也就是相当于把android开发进行前后端分离了。方便分工协作。提高开发效率。 用前端框架开发可以实现一次编码,多平台运行。 &…

人工智能极简史:一文读懂ChatGPT的前世今生

2022年11月30日,OpenAI推出的一款人工智能技术驱动的自然语言处理工具——ChatGPT,迅速在社交媒体上走红,短短5天,注册用户数就超过100万。 2023年1月末,ChatGPT的月活用户已突破1亿,一度成为史上增长最快的…

网站定制开发的流程|软件app小程序开发定制

网站定制开发的流程|软件app小程序开发定制 网站定制开发是一个为个体或企业创建定制化网站的过程。它涉及到规划、设计、开发和测试等一系列步骤,以满足客户的需求和目标。下面是网站定制开发的基本流程。 1. 需求分析:首先,与客户沟通并了解…