Linux权限详解

2023-11-12

你好,我是史丰源
欢迎你的来访,希望我的博客能给你带来一些帮助。

我的Gitee:: 代码仓库

Linux权限

Shell外壳程序运行原理

Shell–外壳,相当于一层遮蔽内部的保护壳。

Linux是一个操作系统,请大家思考一个问题:我们(操作系统使用者)是否能够直接操控操作系统呢?

答案是否定的,请从上到下看下面这张图:
在这里插入图片描述

我们平时使用的Windows和Macos 都是使用图形化界面来访问操作系统,而Linux是使用指令来访问操作系统,那么其实图形化界面和指令就是操作系统的Shell外壳程序,大家不妨可以想一下:操作系统底层使用的是大量的0、1序列,如果用户直接去使用操作系统,那么我们需要去记住一串又一串的二进制序列,这对于我们来说是一项成本巨大的工作,并且用户是人,那么不可避免地会出错,这对于操作系统来说是不安全因素。

人不能直接操作操作系统的原因: 1.操作成本高。 2.人会犯错,从而带来不安全因素。

现在我们可以回到底层操控视图,用户操作Shell外壳程序,Shell外壳程序向操作系统传递用户的指令,操作系统再通过硬件驱动操作硬件 从而完成用户所要求的动作。

Shell外壳的意义:

1.是用户和操作系统交互的媒介

2.可以在一定程度上保护操作系统。

小故事:

张三转眼到了结婚的年龄,却没有对象,家里人都很着急,这时他所在的小镇有一个非常有名的媒婆–王婆,那么家里人就请王婆到家里和张三沟通,但张三已经有了一个心仪的对象–隔壁的小花,他请王婆去小花家说媒,那么王婆就来到了小花家,王婆与小花沟通说隔壁的张三你认识吗?小花回答不认识呀,那么王婆一想:这完蛋了,小花不认识隔壁的张三。于是回到张三家告诉张三:小花不认识你呀。

张三—用户

王婆—Shell外壳

小花—操作系统

操作系统如果不认识用户所发出的指令(Shell外壳),那么Shell外壳会返回Command not found.

Linux权限的概念

我们知道:Linux系统下有两种用户类型:

1.Root(最高权限用户),2.普通用户

那么如何识别Root用户和普通用户呢?

Root用户的命令提示符是:#

普通用户的命令提示符是:$

在这里插入图片描述

那么两种用户所拥有的权限也是不一样的。

Root: 可以在Linux下做任何事情,不受限制。

普通用户:在Linux下做有限权限的事情

Linux权限管理

文件访问者的分类
1.文件或文件目录拥有者: u(User)

2.文件或文件目录所属组: g(Group)

3.其他用户: o (Others)

文件类型和访问权限(事物属性与人)

事物属性:即这个事物具备能做什么的性质。(我不能够在薯片上看电影)

人:使用者(Root与普通用户)

对人操作:用户之间切换。

这里我们我们讲讲如何从普通用户切换到 Root用户

su -指令

输完指令后,Shell外壳程序会提示你输入密码(password:)。

如下图所示。

在这里插入图片描述

文件权限:针对人、事物的基本属性决定权限相关的概念。也即一件事是否能被你‘做’

文件不具备的属性我们就不能访问。

文件权限值的表示形式

1.Linux权限:在Linux下能够进行读写执行的权限。

读:r (八进制表示:4)

Read 对文件而言,具有读取文件内容的权限。对目录而言,具有浏览该目录信息的权限。

写:w (八进制表示:2)

Write 对文件而言,具有修改文件内容的权限。对目录而言,具有删除和移动目录内文件的权限。

执行:x (八进制表示:1)

Execute对文件而言,具有执行文件的权限。对目录而言,具有进入目录的权限。

权限符号(读写执行) 八进制 二进制
r 4 100
w 2 010
x 1 001
rw 6 110
rx 5 101
wx 3 011
rwx 7 111
---- 0 000
2.文件的类型:

d:文件夹 (dir) b: 块设备文件 (例如磁盘文件)

-: 普通文件 p: 管道文件

l: 软链接 c: 字符设备文件 (例如屏幕、键盘等设备)

s: 套接口文件 一般我们常用的是:d(文件夹)和-(普通文件)

注意:Linux下,不以文件后缀来区分文件类型, 后缀名只能代表程序的关联,并不能说明文件是可以执行。

但是,并不代表不可以使用,只是在系统层面(底层)没有意义,后缀名只是给自己看的。

证明:
在这里插入图片描述

在这里插入图片描述

我将.out后缀改为了.link 却也能执行出Hello World!

由此可见linux底层不以后缀区分文件,而是将这类文件包含为 普通文件。

文件类型位置

文件类型位置
如上图,文件类型的显示在Linux中显示为最前端的字符。

那么对于三种访问者,Linux又是如何表示他们的权限呢?
请看下图:
在这里插入图片描述
Linux文件权限位置 及 用户与组名称位置
文件访问权限的相关设置方法
1.chmod:

功能:设置文件的访问权限。

具体使用方法:

chmod 用户名称+想要修改的权限 文件名
在这里插入图片描述
chmod使用方法
在这里插入图片描述

同时修改u和g方法

注意: 只有文件拥有者和Root用户才可以修改文件的权限。

我们在介绍文件权限值的表示形式,讲到了rwx的八进制表示方法,那么我们用八进制也可以完成刚才的操作。
在这里插入图片描述
chmod八进制表示图
2.chown:(只能以Root用户身份更改)

功能:修改文件拥有者

具体使用方法:

chown 用户名称(文件最终拥有者) 文件名
在这里插入图片描述

chown使用方法

3.chgrp:(只能以Root用户身份更改)

功能:修改文件或者目录的所属组。

具体使用方法:
在这里插入图片描述

chgrp使用方法
注意:
在这里插入图片描述
u无权和g有权的区别

我作为拥有者没有任何权限操作文件,那么我即使是文件权限所属组成员我也没又权限去操作文件,因为权限只会认证一次

4.umask (user mask):

功能:查看和修改文件掩码。

Linux默认:

一个目录被创建,起始权限是: 777

一个普通文件被创建,起始权限是:666

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。

原因:创建文件或目录的时候还要受到umask的影响。

格式: umask 权限值(八进制)

目录的权限
可执行权限: 如果目录没有可执行权限,则无法cd到目录中。

可读权限: 如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。

可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux权限详解 的相关文章

随机推荐

  • cocos cretor shader effect-the book of shader-4.二维矩阵

    2D Matrices 二维矩阵 前面章节 TheBookofShader开始 Shaping functions 造型函数 Color 颜色 Shapes 形状 平移 之前的章节我们学习了如何制作一些图形 而如何移动它们的技巧则是借助移动
  • 【设计模式】Chain of Responsibility 责任链式模式

    一 前言 责任链行为模式是行为模式的一种 行为模式涉及到算法和对象间职责的分配 行为模式不仅描述对象或类的模式 还描述它们之间的通信模式 行为模式分为 Template Method 模板方法 和 Interpreter 解析器行为模式 模
  • linux下安装mysql(rpm)方式安装

    前言 在linux中使用rpm安装包安装5以上版本的mysql的都可以参考这个 1 首先下载rpm安装包 要下载两个安装包一个client 一个server 有个镜像做的不错 下载地址mirrors sohu com mysql 进入后找到
  • 虚拟机centos7搭建k8s

    虚拟机centos7搭建k8s 1 踩坑大全 centos7安装的docker后 默认非root用户无法使用 所以需要创建docker组 把当前普通用户加入到组中 这里参考链接 设置docker非root用户正常使用 在给docker配置镜
  • Error creating bean with name ‘sqlSessionFactory‘ 、MySQL启动报错

    今天学习SpringSecurity的时候 选用了springboot 因为公司用的不是boot 所以 boot一直不是很熟悉 在此连接数据库的时候 遇到了一个bug Error creating bean with name sqlSes
  • UR机器人:位姿表示以及相关移动

    博主最近在做强化相关的任务 用到了UR5机械臂 所以本文主要讲述在使用过程中 对于UR机器人位姿的理解 在阅读本文之前 希望大家能够花一点时间读一下我的另一篇博文空间信息与坐标变换 本文如有错误的地方 欢迎大家指正 欢迎讨论 机座和工具 首
  • 麦科捷联合 Mellanox 加速eXtremeDB 集群性能

    2016年7月20日McObject 作为分布式数据库管理系统eXtremeDB 中集群功能的开发者 联合端对端以太网和无限宽带互联方案和服务领先供应商的Mellanox 共同宣布一个基准测试结果 该测试通过集成Mellanox的信息加速器
  • Node-RED配置

    配置文件 可通过配置文件配置Node RED 配置文件在哪 Node RED启动时 会在Node RED用户目录下寻找setting js文件 node red Windows中为系统盘 Users 当前用户 node red 若找不到 将
  • Vue3下pinia的状态管理原理和具体使用示例

    一 Pinia是什么 Pinia在Composition API的设计背景下 以Vuex下一代的构想设计了新的Vue存储状态管理库 Pinia 是一个基于 Vue 3 的状态管理库 它提供了一个可组合的 类型安全的 API 来管理 Vue
  • SpringMVC学习指南(2)

    文章目录 系列文章目录 前言 一 RequestMapping注解 1 1 value属性 1 2 method属性 1 3 params属性 1 4 header属性 1 5 通配符 二 PathVariable 注解 三 REST风格的
  • 安装64位SoildWorks时总是出现无法确定当前的订阅失效日期

    总共会出现两个弹窗信息 弹窗1 安装管理程序无法确定当前的的订阅失效日期 您想重新激活您的许可以更新信息吗 这个弹窗要点击 否 弹窗2 无法决定订阅服务失效日期 您必须使用 这个点击 确定 转载于 https www cnblogs com
  • matlab画对数坐标!

    在很多工程问题中 通过对数据进行对数转换可以更清晰地看出数据的某些特征 在对数坐标系中描绘数据点的曲线 可以直接地表现对数转换 对数转换有双对数坐标转换和单轴对数坐标转换两种 用loglog函数可以实现双对数坐标转换 用semilogx和s
  • 专访《白话区块链》作者蒋勇:学习区块链空谈不如实践

    上周HiBlock区块链社区联合蒋勇老师推出课程 区块链技术概念及智能合约实践 课程上线一天内报名42人 3天时间报名80多人 其中70人通过审核 超额完成第一期招生 为保证学员学习效果 不得已提前关闭报名通道 近几天来 很多学员还在留言问
  • 用C++实现数组切片

    这里写自定义目录标题 用C 实现数组切片 写的一般 权当抛砖引玉了 int slice int arr const int n int a new int n for
  • ubuntu20.4编译AOSP安卓源码(AndroidP android-9.0.0_r9)

    目录 代码下载 安装初始化依赖工具 配置repo工具 配置git信息 初始化仓库 配置编译环境 安装jdk 安装编译依赖 编译 初始化编译环境 选择编译目标 编译源码 启动模拟器 windows和Linux协同工作 遇到的问题解决 安装依赖
  • /etc/sysctl.conf 调优 & 优化Linux内核参数

    from http apps hi baidu com share detail 15652067 http keyknight blog 163 com blog static 3663784020104152407759 http bl
  • vue + video.js 加载多种视频流(HLS、FLV、RTMP、RTSP)

    起因 由于需要在一个项目内接入多种常用的视频流 所以接触到video js 这里就做个记录 框架 vue2 video js videojs contrib hls videojs flvjs es6 videojs flash video
  • 微信小程序支付 java

    话不多说 直接开撸 支付流程步骤 1 首先调用wx login方法获取code 通过code获取openid 2 java后台调用统一下单支付接口 这里会进行第一次签名 用来获取prepay id 3 java后台再次调用签名 这里会进行第
  • 锁升级过程和原理

    目录 同步方法与一般方法字节码对比 对象头中的锁信息 锁升级中涉及的四种锁 锁升级的过程 锁升级过程和原理 同步方法与一般方法字节码对比 public class SynchronizedTest1 public static void m
  • Linux权限详解

    你好 我是史丰源 欢迎你的来访 希望我的博客能给你带来一些帮助 我的Gitee 代码仓库 Linux权限 Shell外壳程序运行原理 Shell 外壳 相当于一层遮蔽内部的保护壳 Linux是一个操作系统 请大家思考一个问题 我们 操作系统