【Linux第二课-权限】操作系统、Linux用户、Linux权限、Linux文件类型、粘滞位

目录

  • 操作系统
    • shell外壳
      • 为什么有shell外壳
      • shell外壳是什么
      • shell外壳工作原理
  • Linux用户
    • root用户与非root用户
    • root用户与普通用户的切换
      • 普通用户 --> root用户
      • root用户 --> 普通用户
      • 普通用户 --> 普通用户
      • 对一条指令提升为root权限进行执行
  • Linux权限
    • Linux中的权限角色
    • Linux中的权限文件属性
    • 修改权限
      • ugr、rwx权限修改
      • 八进制权限修改
    • 有 没有 权限的对比表现
    • 更改文件拥有者、所属组
  • Linux文件类型
    • b块设备文件
    • c字符设备文件
    • l链接文件
    • p管道文件
    • file指令
  • 常见的权限三个问题
    • 1、对一个目录而言,进入一个目录需要什么权限
    • 2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775
    • 3、一个文件能否被删除并不取决于文件本身,而取决于文件所处的目录的拥有者是否有写权限
      • 粘滞位

操作系统

在这里插入图片描述
操作系统概念
广义:内核+外壳(linux的外壳-命令行;Windows的外壳-图形化界面)
侠义:内核

shell外壳

为什么有shell外壳

用户不善于直接使用操作系统

shell外壳是什么

核心工作:用户与内核之间,需求指令<-shell->执行结果
在这里插入图片描述

shell外壳工作原理

shell – 本质是一个执行起来的程序(进程),系统启动期间,一直存在

有风险、用户自定义的指令 — shell都是通过创建子进程的方式去执行有风险的程序
无风险的指令 — shell自己执行

Linux用户

root用户与非root用户

root用户:只有一个
非root用户:即普通用户,可以有多个

root用户与普通用户的切换

只有一个

普通用户 --> root用户

//以root身份重新登录一次
su -
//用户身份提升为root
su

在这里插入图片描述
在这里插入图片描述

su - 切换用户之后还会显示一大段的用户登录信息
su 切换用户之后不会显示

输入下列指令就又会退出来了

logout

在这里插入图片描述

root用户 --> 普通用户

su 普通用户名

在这里插入图片描述

普通用户 --> 普通用户

su 普通用户名

普通用户切换成root用户,需要输入root用户的密码
root用户切换成普通用户,不需要输入普通用户的密码
普通用户切换成另一个普通用户,需要输入另一个普通用户的密码

对一条指令提升为root权限进行执行

sudo 要执行的指令

问题1:
在这里插入图片描述
系统中有一个用户信息配置文件,sudoers有点像linux里面的一张名单,如果一个普通用户在这个配置文件名单里面,就允许该用户进行sudo。
这个文件只能root用户进行添加,因此能进行sudo的用户必须是经过root用户允许的
在这里插入图片描述

sudoers相当于Linux里面的白名单,还有一个黑名单。白名单:做什么都运行,黑名单:做什么都不允许

将用户添加到sudoers
使用文本编辑器进行添加,vim之后再讲

如果我们输入sudo就可以以root的身份执行指定的命令,root的密码毫无意义??
上面就是原因
下面的命令跑不起来

sudo ll

Linux权限

权限是限制人的,能还是不能的问题
对应的操作对象,一定要有对应的满足人的需求的属性

主要用于文件权限上
Linux群体(人)---- 更多的是角色(身份)!— 拥有者 所属组 other vs (root/hui/xxx普通用户)
角色是需要人去承担的,因此对于root/hui/xxx在不同的文里面会承担不同的角色(拥有者、所属组、other)
Linux操作对象的属性 ---- 文件权限属性上 ---- r w x(读、写、执行)

Linux中的权限角色

所属组:linux里面可以建立一些组,组名可以以其中一个用户的名称命名
在这里插入图片描述

Linux中的权限文件属性

在这里插入图片描述
rwx — 111 — 7
rw- — 110 — 6

修改权限

ugr、rwx权限修改

user -> u, group -> g, other -> o
更改权限命令:chmod u/g/o-权限,u/g/o-权限,u/g/o-权限文件名、chmod u/g/o+权限 文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

chmod u-r,g-r,o-r file.txt

在这里插入图片描述
给所有人加上r权限

chmod a+r file.txt  //a--all,所有人

在这里插入图片描述

八进制权限修改

chmod 777 file.txt

在这里插入图片描述

有 没有 权限的对比表现

拥有者没有读权限
在这里插入图片描述
拥有者没有写权限
在这里插入图片描述
对于执行,需要满足下列两个要求:
1、你有执行权限
2、这是一个可执行文件
权限x的意思是,你要执行的时候我不拦着你,但前提你得是个可执行文件
linux中权限角色判断,从拥有者、所属组、other依次开始判断,如果是拥有者就不会继续往后判断,就只看拥有者的权限
root账号之下,不受权限约束

更改文件拥有者、所属组

修改拥有者

chown 要更改的用户名 文件名

在这里插入图片描述
但这个是不允许的,给别人文件是需要征得别人允许。但在Linux里面是得不到允许的,只能来硬的,sudo进行指令提权
修改所属组

chgrp 要更改的用户名 文件名

没有更改other的指令
因为在修改拥有者、所属组时,other也在相应的改变
同时更改拥有者、所属组

chown 拥有者更改名:所属组更改名 文件名

Linux文件类型

Linux不通过后缀区分(不代表Linux不用后缀)
-:普通文件,文本、源代码、图片、视频、库、可执行等
d:目录文件
b:(block)块设备文件,磁盘,支持随机访问都是块设备
c:(char)字符设备文件,键盘,显示器,不支持随机访问
l :链接文件
p:管道文件
s:socket文件

linux下一切皆文件,硬件设备也会被当文件

在这里插入图片描述

b块设备文件

在这里插入图片描述

c字符设备文件

在这里插入图片描述
在这里插入图片描述

在系统中,每一次打开一个终端文件,这个终端文件也是一个

l链接文件

具有指向性(类似快捷方式),lib64是系统中默认安装的很多库文件
在这里插入图片描述

p管道文件

mkfifo 管道名

在这里插入图片描述

这种管道文件和之间学命令行的|有很大关系,但不一样,他们是兄弟关系,后面学
管道文件:传递信息

file指令

更加详细的显示是什么文件

file 文件名

在这里插入图片描述

常见的权限三个问题

1、对一个目录而言,进入一个目录需要什么权限

不是写权限
在这里插入图片描述
不是读权限

chmod u-r,u+w dir

在这里插入图片描述
是x权限,进入一个目录收执行权限的影响
在这里插入图片描述

目录没有r权限,看不见目录里面文件对应的属性信息
目录没有w权限,无法在目录里面创建文件、删除文件、修改文件等,但文件属性可以改、文件名不能改
目录没有x权限,无法打开目录

在这里插入图片描述

2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775

drwxrwxr-x 2 hui hui 4096 Jan 19 12:34 new_dir
-rw-rw-r-- 1 hui hui 0 Jan 19 12:34 new.txt
对于x权限,只有需要的文件才加上,如目录、可执行文件。对于不需要的普通文件默认不加,如果用户需要再自己加
目录起始权限:777
普通文件起始权限:666
系统中不只有起始权限,还有权限掩码umask:定制一个文件被创建时的默认权限

查看系统默认的权限掩码
umask
在这里插入图片描述
0002 -> 002 -> 000 000 010(第一个0代表八进制)

在这里插入图片描述
起始权限&(-umask) = 最终权限(默认)
在这里插入图片描述

3、一个文件能否被删除并不取决于文件本身,而取决于文件所处的目录的拥有者是否有写权限

如果我们之间需要文件共享呢?
Linux里的根目录下的tmp目录就是,/tmp,被所以用户共享。但tmp里面有一个问题:你即使不让普通用户读写等,但它能删除(因为tmp的other权限有w)

drwxrwxrwx.  8 root root  4096 Jan 19 03:21 tmp

为了解决上述问题,Linux新增了一个权限,t — 粘滞位

drwxrwxrwt.  8 root root  4096 Jan 19 03:21 tmp

粘滞位

在共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行了特定的限制
该目录里的文件,只有root文件的拥有者该目录的所有者有权利进行删除!!其他人一概不允许!

【Linux第一课-Xshell常用命令大全】Linux安装、xshell的安装与登录、os概念、xshell基本指令

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

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

相关文章

【Linux】Linux系统的生态

Linux中安装软件 Linux中安装软件一般有三种方式&#xff1a; 源代码安装rpm包安装yum安装 1.源代码安装 有些软件本来就是开源的&#xff0c;如果不想用别人直接发布好的软件&#xff0c;我们就可以把源代码下载下来&#xff0c;在我们的环境中编译&#xff0c;自己安装 …

(初研) Sentence-embedding fine-tune notebook

由于工作需要&#xff0c;需要对embedding模型进行微调&#xff0c;我调用了几种方案&#xff0c;都比较繁琐。先记录一个相对简单的方案。以下内容并不一定正确&#xff0c;请刷到的大佬给予指正&#xff0c;不胜感激&#xff01;&#xff01;&#xff01; 一.对BGE模型&…

Visual Studio 下载安装教程,附安装包和工具,Visual Studio 2022,Visual Studio所有版本都有

前言 Visual Studio是微软推出的一款C编译器&#xff0c;将“高级语言"翻译为"机器语言&#xff08;低级语言)"的程序&#xff0c;VS是一个非常完整的开发工具集&#xff0c;包括了所有软件生命周期中所需的大部分工具&#xff0c;如UML工具、代码管控工具、集…

Kafka 的 Consumer Group 解读

作为一份笔记&#xff0c;本文再次梳理一下 Kafka 的 Consumer Group。我们知道&#xff0c;一个 Topic 往往会有多个 Partition&#xff0c;一条消息只会被写到一个 Kafka 的 Partition 中&#xff0c;那 Consumer 是怎么消费 Message 的呢&#xff1f; Consumer Group 又从中…

零基础学Python(3)— 注释、代码缩进和编码规范

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。在使用Python语言进行编程的时候&#xff0c;需要遵循一定的规范标准。本节课就带大家了解下Python语言在注释、缩进和编码方面的规范!~&#x1f308; 目录 &#x1f680;1.注释 &#x1f680;2.代码缩进 &#x1f68…

vue.js安装

1:下载 Node.js 官网&#xff1a;https://nodejs.org/en/download 2:安装 node -v npm -v 3:配置 npm config set prefix "F:\node\node_global" npm config set cache "F:\node\node_cache" 按 win 键并输入“编辑系统环境变量”调出系统属性界面&a…

kubernetes工作负载-DamonSet

一、DemonSet的介绍 1、什么是DemonSet DaemonSet 控制器是用来保证在所有节点上运行一个 Pod 的副本当有节点加入集群时&#xff0c; 也会为他们新增一个 Pod。 当有节点从集群移除时&#xff0c;这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。 简而言之…

递归、搜索与回溯算法(专题二:深搜)

往期文章&#xff08;希望小伙伴们在看这篇文章之前&#xff0c;看一下往期文章&#xff09; &#xff08;1&#xff09;递归、搜索与回溯算法&#xff08;专题零&#xff1a;解释回溯算法中涉及到的名词&#xff09;【回溯算法入门必看】-CSDN博客 &#xff08;2&#xff09…

Android Studio安卓开发--ListView学习整理

ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内&#xff0c;同时屏幕上原有的数据则会滚动出屏幕。 1.ListView的简单用法 &#xff08;1&#xff09;activity_main.xml布局中加入ListView控件&#xff1a;&#xff08;先占满整个布局的空间&#xff09;…

matplotlib从起点出发(12)_Tutorial_12_MultiAxes

在一个Figure中安排多个Axes 通常在一个图像中&#xff0c;需要同时呈现多于一个Axes&#xff0c;并且需要对齐到网格. Matplotlib有多种工具用于处理在本库历史中演变的Axes网格&#xff0c;我们将讨论我们认为用户最常使用的工具&#xff0c;支持Axes组织方式的工具&#xf…

Qt弹框展示

1.相关说明 文件选择弹框、目录选择弹框、保存文件弹框、颜色选择弹框、字体选择弹框、进度条弹框、输入对话框、标准消息框等 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QProgressD…

Java集合(3)

1.泛型 1.1泛型概述 泛型的介绍 泛型是JDK5中引入的特性&#xff0c;它提供了编译时类型安全检测机制 泛型的好处 把运行时期的问题提前到了编译期间 避免了强制类型转换 泛型的定义格式 <类型>: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如: …

软件开发架构

【 一 】软件开发架构图 【 1】ATM和选课系统 三层的开发架构 前段展示台 后端逻辑层 数据处理层 【二】软件开发架构的步骤流程 需求分析&#xff1a;在软件开发架构设计之前&#xff0c;需要对应用系统进行需求分析&#xff0c;明确用户需求、功能模块、业务流程等内容。…

canvas绘制N角形,锯齿状

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

beego API 自动化文档

API 全局设置 必须设置在 routers/router.go 中&#xff0c;文件的注释&#xff0c;最顶部&#xff1a; // APIVersion 1.0.0 // Title mobile API // Description mobile has every tool to get any job done, so codename for the new mobile APIs. // Contact astaxiegmai…

第一篇【传奇开心果系列】beeware开发移动应用:轮盘抽奖移动应用

系列博文目录 beeware开发移动应用示例系列博文目录一、项目目标二、开发传奇开心果轮盘抽奖安卓应用编程思路三、传奇开心果轮盘抽奖安卓应用示例代码四、补充抽奖逻辑实现五、开发传奇开心果轮盘抽奖苹果手机应用编程思路六、开发传奇开心果轮盘抽奖苹果手机应用示例代码七、…

近期学习文章

DNSlog在渗透测试中的实战技巧 - 网安隐藏源IP&#xff0c;提高溯源难度的几种方案 - 网安FreeBuf网络安全行业门户 【漏洞公告】某平台一个有意思的CSRF // SecTrain安全博客 浅谈Web源码泄漏-安全客 - 安全资讯平台 红队-C2 Server基础构建 - 先知社区FreeBuf网络安全行业…

Pytest系列(2) - assert断言详细使用

前言 与unittest不同&#xff0c;pytest使用的是python自带的assert关键字来进行断言assert关键字后面可以接一个表达式&#xff0c;只要表达式的最终结果为True&#xff0c;那么断言通过&#xff0c;用例执行成功&#xff0c;否则用例执行失败 assert小栗子 想在抛出异常之…

大模型增强大模型:通过融合扩展能力(Google DeepMind2024)

1、写作动机&#xff1a; 存在如此多领域特定的模型自然引发一个问题&#xff1a;我们是否能够将一个固定模型与一个特定领域的增强模型组合&#xff0c;以实现新的能力&#xff1f;例如&#xff0c;我们是否可以将增强模型的代码理解能力与固定LLM的语言生成能力组合&#xf…

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学&#xff08;GIS&#xff09;专业的2024届应届生&#xff0c;在研三上学期期间&#xff0c;寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先&#xff0c;这篇文章一开始写于2023年年底&#xff0c;当时为了参加一个征文活动&#xff0c;所…