【Linux】shell命令以及运行原理和Linux权限详解

news2024/12/25 9:51:59

  •  本期主题:Linux权限详解
  • 博客主页:小峰同学
  • 分享小编的在Linux中学习到的知识和遇到的问题
  • 小编的能力有限,出现错误希望大家不吝赐

 


目录

🍁1.shell命令以及运行结果

🍁2. Linux用户管理

🍁3. Linux权限管理

🍂1)什么是权限?

🍂2)文件访问者的分类(人)

🍂3)文件类型和访问权限(文件属性)

🍂4)文件权限的表示方法

🍂5)文件权限的相关设置方法

a)chmod

b)chown

c)chgrp

d)umask

e)file

🍂6)目录权限

文件权限

粘滞位

🍂7)关于权限的总结


🍁1.shell命令以及运行结果

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。注意:shell 是所有外壳程序的统称,bash 是一种具体的shell。例如:centos 7外壳程序 :bash

  • 如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI:我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux:有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运 行出结果,通过shell解析给用户。

  • shell运行原理
  • shell是做命令行解释的,给操作系统解释,同时将结果翻译给用户。
  • shell外壳会保护操作系统,并不是用户所有的命令都会传递到操作系统,对系统有危害性的命令会被阻止从而保护操作系统
  • shell的运行原理:创建子进程,子进程会从父进程中继承很多环境,如变量、命令全路径、文件描述符、当前工作目录、陷阱等等,其好处为子进程出现任何问题都不会影响父进程shell。
  • 用户不好直接和操作系统直接交互,shell方便连接用户和操作系统。
  • 感性理解shell。

如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。


🍁2. Linux用户管理

  • Linux下有两种用户:超级用户(root)、普通用户。
  • 超级用户:可以再linux系统下做任何事情,不受权限的约束
  • 普通用户:在linux下做有限的事情,受权限的约束

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。(限于cuntos)

  • 用户切换的命令

命令su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 suroot(root可以省略),此时系统会提示输入root用户的口令(密码)

注意点:

  • 切换到root:用su -,我们可以切换到root用户(此时输入root账号密码,密码是不会回显在屏幕上的)
  • su   和  su -  和   su root 都可以切换到root用户,但是有不同点后面介绍。
  • 切换回普通用户:用su - 用户名 切回普通用户,(此时不用输入密码,但是我们不建议这样切回,因为使用su -命令时,会创建更多的bash进程
  • 推荐的切换回普通用户:输入exit或者敲击Ctrl+d,退出当前用户。返回上一级用户。


🍁3. Linux权限管理

  • 🍂1)什么是权限?

权限本质上是某人能否做某事。

  • 针对人: 例如我是这间房子的主人所以我可以自由进出这个房子,(能不能做)。
  • 针对事物: 我想去吃一台电脑、我想在面包上玩英雄联盟、看电影。面包能吃,但是电脑不能吃、你可以吃面包,但是不能吃电脑;这里面包括了两个属性(有没有这个属性)。

文件受人的影响和文件受本身自身特点 (事物属性) 的影响 所以 :文件权限 = 人 + 事物属性
文件权限属性:r(读)、w(写)、x(执行权限)
人 (不是特定具体的人,而是一种角色):拥有者、所属组、other (其它)

  • 🍂2)文件访问者的分类(人)

  • 拥有者(u):文件和文件目录的所有者:u—User(中国平民 法律问题)
  • 所属组(g):文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • 其它用户(o):o—Others (外国人)
  • 🍂3)文件类型和访问权限(文件属性)

可以通过ls -l ( ll )来查看文件或者目录的详细信息 

 也就和上面的权限和访问者等信息对应

文件类型:(linux下通过众多属性列中第一列的第一个字符来区分文件类型)

  • d:文件夹
  • -:普通文件(源码,库文件,可执行文件,压缩包等等)
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

注意和windown下文件的不同

  • win下用后缀来区分不同的文件类型。
  • linux下文件类型与后缀无关,(一般后缀只是用户自己区分,这里的后缀只是文件名的一部分)
  • 但是这只是linux不能按照后缀来区分,上安装的软件是可以区分后缀的,例如:gcc只能识别xxx.c结尾的文件。

基本权限

  • i.读(r/4):Read,对文件而言具有读取文件内容的权限对目录来说具有浏览该目录信息的权限
  • ii.写(w/2):Write,对文件而言具有修改文件内容的权限对目录来说具有删除移动目录内文件的权限
  • iii.执行(x/1):execute,对文件而言具有执行文件的权限对目录来说具有进入目录的权限
  • iv.“—”表示不具有该项权限

  • 🍂4)文件权限的表示方法

字符表示方法

Linux表示说明Linux说明
r - -只读- w -仅可写
- - x仅可执行r w -可读可写
- w x可写可执行r - x可读可执行
r w x可读可写可执行- - -无权限

8进制表示方法

权限符号 (读写执行)八进制二进制
r41 0 0
w20 1 0
x10 0 1
r w61 1 0
r x51 0 1
w x30 1 1
r w x71 1 1
- - -00 0 0

  • 🍂5)文件权限的相关设置方法

a)chmod

  • 功能:设置文件的访问权限
  • 格式:chmod [参数] 权限 文件名

常用选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

用户表示符+/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:  

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

举例:

 注意:chmod可以给拥有者,所属组,其他用户同时修改权限,中间用逗号隔开。

 使用8进制修改

b)chown

  • 功能:修改文件或者目录的拥有者
  • 格式:chown [参数] 用户名 文件名 

常用选项:

  • -R 递归修改文件或目录的所属组

举例:

 注意:一般修改文件所属组需要sudo提权,输入当前用户的密码,以后在讲怎么使用sudo提权。 

可以把拥有者和所属组都给改了,用:连接。

c)chgrp

  • 功能:修改文件或目录的所属组
  • 格式:chgrp [参数] 用户组名 文件名

常用选项:

  • -R 递归修改文件或目录的所属组

举例:

 注意:一般修改文件所属组需要sudo提权,输入当前用户的密码,以后在讲怎么使用sudo提权

d)umask

  • 功能: 查看或修改文件掩码
  • 新建文件默认权限=0666 新建目录默认权限=0777
  • 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。
  • 假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
  • 格式:umask 权限值
  • 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。
  • 超级用户默认掩码值为0022,普通用 户默认为0002。

举例:

 说明: 

  • 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002

e)file

  • 功能说明:辨识文件或者目录类型。
  • 语法:file [选项] 文件或目录…

常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容。

  • 🍂6)目录权限

文件权限

  • 可执行权限 x: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限 r: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限 w: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

于是, 问题来了~~

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 这好像不太科学啊,

我张三创建的一个文件, 凭什么被你李四可以删掉?验证一下确实可以。

为了解决这个不科学得问题:就提出了粘滞位这个概念。

粘滞位

linux系统中有很多的用户,每个用户都有自己的家目录,有时候我们需要在一个公共目录下,进行临时文件的操作(增删查改),在Linux下有一个公共目录tmp。

张三不能再李四的家目录下进行操作。因为没有权限。所以想要再同一个目录下进行操作,就需要一个公共目录tmp。这就是tmp存在的意义。

公共目录的存在是粘滞位的大背景。这个公共目录一般是由root用户创建的。这个目录一般拥有者和所属组都是root,其他任何用户都是other。并且other权限全部开放。

 

实验

root用户在根目录下创建一个公共目录,并且打开其他人的全部权限。其余的两个用户都创建自己的文件,修改test1 权限为仅自己课读写。

 可以看到gwy用户不能查看和写入test1 文件, 但是可以删除test1 文件,因为gwy用户拥有该目录的写权限。可以删除该目录下的文件(不管属不属于自己)

 

所以一个文件可以不可以被删除不是文件本身决定的是由文件所处的目录决定的,所以就需要用到粘滞位的概念,让一个公共目录下禁止大家互删。就要给该目录设置粘滞位。就需要目录拥有者(root)设置粘滞位。(chmod +t 目录名) 即可。

 我们再在此公共目录删除别人的文件的时候就被禁止了

 

注意:当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 一、超级管理员删除
  • 二、该目录的所有者删除
  • 三、该文件的所有者删除

但是root不受权限约束,即使去掉所有权限root也可以删除此文件,因为root用户不受权限约束。所以大家一定要保存好自己的root密码。

  • 🍂7)关于权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这 个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读 权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python进阶学习之阅读代码

起因 在这个过程中,学习到了一些东西,同时整理了自己以前的一些收获,然后分享给大家,有不对的地方还望海涵、指正。 阅读代码有助于处理bug 阅读代码是一项更重要的技能,在大学编程语言的考试中也有相关的考察——代…

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018) 一、 背景 为什么要读这篇论文,因为LZ之前要做头部姿态估计,看到一些传统的方法,都是先进行人脸检测,然后再…

Java基于JSP旅游网站系统的设计于实现

我国的旅游事业目前正处于一个科学技术日新月异飞速向前发展的环境中。信息技术和通信技术以令人目不暇接的速度发展,尤其是互联网络的广泛流行,使得各种服务信息已近乎透明,且个性突出的游客们已不再满足于死板的标准化的旅游项目&#xff0…

JavaScript-T2

JavaScript-T2 前言 本次主要讲解的知识点是: JavaScript自定义函数 JavaScript系统函数 JavaScript 事件 JavaScript 的常用事件 JavaScript自定义函数 函数就是为了完成程序中的某些特定功能而进行专门定义的一段程序代码 函数包括自定义函数和系统函数 使用函数…

Akka 学习(二)第一个入门程序

目录一 sbt 介绍1.1 Sbt1.2 下载安装1.3 sbt的特点1.4 Idea 配置Sbt开发工具二 构建定义2.1 指定版本2.2 build.sbt 设置三 代码实现3.1 Java版本3.2 Scala版本3.3 对比一 sbt 介绍 1.1 Sbt sbt 是为 Scala 和 Java 项目构建的。它是93.6%的 Scala 开发人员的首选构建工具&am…

2000-2021年各省GDP包括名义GDP、实际GDP、GDP平减指数(以2000年为基期)

全国31省市GDP平减指数(2000-2021年)及计算步骤 1、时间:2000-2021年 2、范围:31省 3、数据包括:2000-2021年各省市GDP平减指数,以2000年为基期,包括数据来源、计算方法、公式等。 4、计算步骤: 第一步…

物联卡采购注意要点有哪些

在这个万物互联的时代,针对于企业设备联网的物联卡就显得格外重要了,而共享单车,移动支付,智慧城市,自动售卖机等企业采购物联卡会面临着各种问题,低价陷阱,流量虚假,管理混乱&#…

sealos issue #2157 debug 思路流程记录

sealos issues#2157 debug思路流程前言分析issue剖析源码解决方案总结前言 这个项目蛮有意思的,sealos 是以 kubernetes 为内核的云操作系统发行版。 boss上看到 -> 沟通 -> 解决某个issue直接offer -> 舒服 本文记录解决 issue 的思路 分析issue BUG…

Linux系统常用的工具

1.1 Vscode编辑器 从官网下载 ubuntu 版本,官网地址:https://code.visualstudio.com/。下载xxx.deb的包。 或者使用指令下载:wget https://az764295.vo.msecnd.net/stable/6261075646f055b99068d3688932416f2346dd3b/code_1.73.1-1667967334…

基于Intel Lake-UP3平台为半导体与集成电路测试设备提供优异计算性能

为什么半导体和IC测试设备需要升级? 随着众多新的高性能应用的需求不断增加,信迈旨在为半导体集成电路测试设备领域的客户提供更好的方案。半导体和集成电路(IC)测试设备设计用于在一台测试机上同时对不同线路的数百个集成电路…

How Can We Know What Language Models Know?

Abstract 最近的工作通过让语言模型(LM)填补诸如“奥巴马是一个职业”之类的提示的空白,提出了一个有趣的结果,以检查语言模型(LM)中包含的知识。这些提示通常是手动创建的,而且很可能不是最佳…

Linux进程通信之进程信号

一、信号的概念: 信号机制是Linux最基本的通讯机制,它可以用来向一个或者多个进程发送异步事件信息,传送少量信息。信号是一个软件中断,并且是一个“软中断”(只是告诉有这样一个信号,但这个信号具体如何进…

Redis6入门到实战------思维导图+章节目录

Redis学习大纲 思维导图 思维导图 Redis6入门到实战------1、NoSQL数据库简介 地址: Redis6入门到实战------2、Redis6概述和安装 地址: Redis6入门到实战------3、常用五大数据类型 地址: Redis6入门到实战------4、Redis6配置文件详解…

Stack Overflow 临时禁用 ChatGPT 生成内容,网友:人类和AI快打起来!

如果有一天我们查询到的「知识」真假难辨,那这就太可怕了。 要问最近 AI 圈哪个模型最火爆,你不得不把 OpenAI 推出的 ChatGPT 排在前面。自从发布以来,这个对话模型可谓是出尽风头,很多人更是对其产生了一百个新玩法,…

Linux系统移植四:Petalinux使用本地sstate-cache加速构建根文件系统

根文件系统简介 根文件系统 rootfs 是Linux内核启动以后挂载(mount)的第一个文件系统,然后从根文件系统中读取初始化脚本,比如rcS,inittab等 根文件系统和Linux内核是分开的,单独的Linux内核是没法正常工作的,必须要…

TPM零知识学习六 —— tpm模拟器安装

本文参考以下链接: TPM模拟器和TPM2-TSS安装_jianming21的博客-CSDN博客_tpm2-tss 可信平台模块TPM(Trusted Platform Module)介绍及tpm-tools安装使用_jinhuazhe2013的博客-CSDN博客_tpm模块 1. 源码下载 运行以下命令下载源码&#xff1…

设计模式--观察者模式

文章目录前言一、未使用设计模式二、观察者模式1.定义2.组成三、应用场景四、优缺点优缺前言 甲人A(产品经理):好啊,你小子,又被我逮到了,很闲是吧😇,需求完成了吗? two…

MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(三)同步整流器驱动

同步整流器驱动 1.栅极电荷 2.dv/dt注意事项 MOSFET 同步整流器是接地基准开关的一个特例。这些器件与传统应用所使用的 N 沟道 MOSFET 相同,只是它们被应用到了电源的低电压输出而非整流器二极管中。 它们通常可在非常有限的漏源极电压摆幅下工作,因此…

redis活跃非活跃连接数统计及client list说明

概念说明 活跃连接是指当下正在执行命令的连接,非活跃当然是相对的。 在redis中判断当前连接是否活跃是通过 内置的client list 命令输出中的idle来判断 client list字段说明 (kfzops) [roottest-xxx-01-vm ]# redis-cli -h r-xxxxxxxxxxxx.redis.rds.aliyuncs.…

学生身份标签的识别与风控应用

当前的互联网借贷平台,国家已明确规定不允许向高校学生发放贷款,因此对于小贷、消金等金融机构,在信贷产品业务的风控体系中,有效判断申请用户是否为高校学生是一个非常重要的问题。针对高校学生身份的识别,虽然有多种…