shell原理及Linux权限

news2024/11/28 0:46:44

shell及Linux权限

在这里插入图片描述

目录

  • shell及Linux权限
  • 一、指令
    • 1.tar指令(重要)
    • 2.热键
    • 3.bc命令
    • 4.uname –r指令:
    • 5.关机
    • 6.以下命令作为扩展:
  • 二.shell命令以及运行原理
  • 三.权限
    • 1.权限的概念:
    • 2.Linux下有两种用户:超级用户(root)、普通用户
    • 3.Linux的文件属性
    • 4.文件权限
      • 1.文件类型
      • 2.文件名后缀
    • 4.Linux用户
    • 5.角色划分
    • 6.文件访问权限的相关设置方法
    • 7.目录权限
    • 8.默认权限
  • 四、粘滞位
  • 五、权限的总结

一、指令

1.tar指令(重要)

打包/解包,不打开它,直接看内容

tar [-cxtzjvf] 文件与目录 …
参数:

-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

image-20221126044223531

image-20221126044316581

image-20221126044421415

image-20221126044605933

image-20221126044849427

2.热键

[Tab]按键—具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键—让当前的程序『停掉』
[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,你也可以用来取代exit

image-20221126045440298

3.bc命令

bc命令可以很方便的进行浮点运算

image-20221126045809468

4.uname –r指令:

语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

image-20221126051515992

常用选项:

-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

image-20221126050430452

image-20221126050500097

image-20221126050947947

5.关机

语法: shutdown [选项] ** 常见选项: **

-h:将系统的服务停掉后,立即关机

-r:在将系统的服务停掉之后就重新启动

-t sec: -t后面加秒数,是几秒后关机的意思。

6.以下命令作为扩展:

安装和登录命令: login、 shutdown、 halt、 reboot、 install、 mount、 umount、 chsh、 exit、last;
文件处理命令: file、 mkdir、 grep、 dd、 find、 mv、 ls、 diff、 cat、 ln;
系统管理相关命令: df、 top、 free、 quota、 at、 lp、 adduser、 groupadd、 kill、 crontab;
网络操作命令: ifconfig、 ip、 ping、 netstat、 telnet、 ftp、 route、 rlogin、 rcp、 finger、 mail、 nslookup;
系统安全相关命令: passwd、 su、 umask、 chgrp、 chmod、 chown、 chattr、 sudo ps、 who;
其它命令: tar、 unzip、 gunzip、 unarj、 mtools、 man、 unendcode、 uudecode。

二.shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。
而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

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

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

image-20221126052308214

image-20221126052448055

外壳程序:

bash—CenOs7下的具体的命令行解释器(王婆)

shell----外壳程序的统称(媒婆)

三.权限

1.权限的概念:

访问的对象天然可能没有这种“属性”。

一件事情是否允许被谁做

权限=人+事务属性(事务就是文件,属性都是读写执行)

2.Linux下有两种用户:超级用户(root)、普通用户

超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

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

3.Linux的文件属性

可以有的属性是 读 写 执行(r w x)

文件属性包括文件类型和文件权限

4.文件权限

image-20221126054144661

1.文件类型

Linux操作系统中不用文件的后缀名区分文件类型,而是用文件属性中第一列的第一个字符来区分文件类型。

image-20221126060100719

2.文件名后缀

未来我们该如何看待后缀呢?

a.如果你想用就用,可以给人看

b.将后缀看做成文件名的一部分

gcc软件需要后缀

4.Linux用户

普通用户和root用户之间的切换:su

image-20221126060641855

image-20221126061655919

5.角色划分

1.文件拥有者

2.文件所属组

3.文件的other

image-20221126062244064

image-20221126064435066

6.文件访问权限的相关设置方法

a)chmod

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

常用选项:

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

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

image-20221126064104058

image-20221126064936858

②三位8进制数字

image-20221126065851577

b)chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

# chown user1 f1
# chown -R user1 filegroup1

c)chgrp

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

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

实例

chgrp users /abc/f2

d)umask

功能

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到

umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

格式:umask 权限值

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

户默认为0002。

实例

# umask 755
# umask //查看
# umask 044//设置

7.目录权限

我们之前了解了文件的权限,那么目录的权限又是怎么样的呢?

首先我们要进入一个目录需要什么权限?

答案是可执行权限,如果我们没有可执行权限(X),那么我们就不能cd进入该目录。

对于目录来讲,如果没有r权限,我们就无法查看当前目录下的文件名+文件属性。

对于目录来讲,如果没有w权限,我们就无法直接在该目录下创建新文件。

想要更深入的了解目录权限就得利用文件系统的知识,后面会对这里进行补充。

8.默认权限

我们创建的普通文件(不包括可执行),为什么文件权限是从664开始,为什么目录的默认权限是从775开始?

其实不同的操作系统可能默认权限是不一样的。

默认权限:就是我们直接看到的

起始权限:系统设定的,普通文件的起始权限是666开始的,没有x(可执行程序),目录文件的起始权限是777(rwx);

系统为了更好的控制文件的权限,系统会有默认的权限掩码的概念!即umask。

**对于root用户,系统默认的umask值是0022;**对于普通用户,系统默认的umask值是0002。

然后通过和权限掩码的处理就可以得到最终权限。

权限掩码:在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限!

== 最终权限=起始权限&(~umask) ==

普通文件的默认权限:

在这里插入图片描述

目录的默认权限:

在这里插入图片描述

四、粘滞位

我们如果创建一个共享目录,让多个人可以同时共享文件,就会出现一些问题,就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

举例说明就是张三创建了一个文件,为了不让李四操作,就将自己文件other的写权限关闭,李四就不可以在张三的文件中创建新的文件,但是李四只要有目录的写权限,他就可以直接将张三的文件直接删除掉,这让张三防不胜防,我们粘滞位就是为了解决这一实际问题。

但是有人又说,既然李四要有目录的写权限才可以删除目录中张三的文件,那么我们直接将目录的写权限直接关闭掉,那么李四不就不可以删除掉张三的文件了吗?可是这种方法是拆了东墙补西墙,我们这个目录创建就是为了张三和李四等人能够同时在该目录下操作,你去掉了该目录的写权限,不仅李四不能删除张三的文件,但是张三和李四都不能在该目录下创建新的文件,那么我们这个目录还有什么作用呢?所以这种方式并不能解决这一问题,粘滞位就可以。

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

我们先来看以下dir的权限:

在这里插入图片描述

我们给dir目录加上粘滞位后看一下权限:

在这里插入图片描述

加了粘滞位之后我们发现dir该目录的other的x权限位置变成了t,这样在dir的目录中没有权限的普通用户就没有办法删除文件了。

那么问题又来了,加上粘滞位后什么情况下才可以删除目录中的文件呢?

答案是在这种特定的目录下,创建文件和删除文件都是由该目录的w权限决定!

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

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

五、权限的总结

1.目录的可执行权限是表示你可否在目录下执行命令。

2.如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

3.而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读

权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
目录的w权限决定!

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

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

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

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

相关文章

一图读懂mybatis 查询接口的源码流程

图比较大:如果看着比较糊的话,可以下载高清图:https://download.csdn.net/download/langwuzhe/87376216 第一步:创建 StatementHandler、ParameterHandler、ResultSetHandler-----------(三剑客的新生) 创建 StatementHandler 对…

WPS怎么转换PDF?保证你一学就会

相信大家在处理文件的时候肯定会使用到WPS文件,WPS文件包括Word、Excel、PPT文件,是我们经常使用的几种文件,有这几种文件我们可以更好的完成工作,但是在有些情况下,我们需要将WPS转换成PDF文件,这样就会更…

AS弹性伸缩简单介绍

AS 介绍 弹性伸缩(AutoScaling)是一种服务,可以自动调整弹性计算资源(ECS),以满足业务需求的变化。 弹性伸缩仅支持ECS实例或ECI实例数量的增加和减少,但不支持单个ECS实例或ECI实例的配置变更。 应用场景:弹性扩张、…

Windows安装使用Docker,方便你的开发和部署(DockerDesktop篇)

前言 首先声明,此篇不是完全的Docker技术文章,而是单纯的教你使用Docker,不包含Docker的一些命令、如何打包Docker镜像等等。 为什么要用Docker? 大家好,我是小简,今天带来一篇Windosw环境下使用Docker的…

女生学软件测试有什么优势么

在IT技术行业,女生学习软件测试还是有很大优势的。女生相较于男生更有耐心,包容性强,心思细腻,对细节把控更好,同时还能帮助团队男女平衡,活跃气氛。 软件测试是一个只要你肯学习就会有回报的职业&#xf…

判断用户输入的数字是奇数还是偶数

判断用户输入的数字是奇数还是偶数代码关键知识点 条件运算符, 相等运算符,为了让两个不同的数据类型(如number和string)的值可以作比较,必须要把一种类型转换为另一种类型(转换成相同的类型)&…

Ae 效果详解:CC Ball Action

Ae菜单:效果/模拟/CC Ball ActionEffect/Simulation/CC Ball ActionCC Ball Action (滚珠操作效果)可以将所有的像素变成小球模样,并且能够打破图层成球形网格。可通过摄像机观察其所具有的 3D 效果。◆ ◆ ◆效果控件属性说明S…

【数据结构与算法——C语言版】6. 排序算法(4)——快速排序

前言 本文介绍排序算法中的快速排序,快速排序是比较常用的一种排序算法,也是面试中经常会问到的一种排序算法,简称快排,是我们要介绍的第一种时间复杂度为O(nlogn)的排序算法。 核心思想 快速排序(Quick Sort)使用分治法策略&a…

Vue--》详解状态管理工具——Vuex

目录 vuex 搭建vuex环境 vuex的使用 vuex开发者工具使用 getters mapState和mapGetters mapMutations和mapActions 多组件共享数据 vuex实现模块化 vuex 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管…

c语言进阶(4)——字符函数的详细解析

文章目录1.strlen函数2.strcpy函数3.strcat函数4.strcmp函数5.strncpy函数6.strncat函数7.strncmp函数8.strstr函数9.strtok函数10. strerror函数11. 相关字符转换函数12.字符转换函数1.strlen函数 size_t strlen( const char *string ); 用途:用来计算字符串长度的…

【云原生进阶之容器】第二章Controller Manager原理2.8节--Resync机制

8 Resync机制 8.1 DeltaFIFO队列为什么需要Resync 为什么需要 Resync 机制呢?因为在处理 SharedInformer 事件回调时,可能存在处理失败的情况,定时的 Resync 让这些处理失败的事件有了重新 onUpdate 处理的机会。 主要的目的是为了不丢数据,处理 resync 机制还有边缘触发与…

公务员考试催生一家上市公司,公务员真的是一条好的出路吗

公务员考试能催生一家公司吗?还真的可以,而且在2023.01.09日也就是今天上市。公务员真的是一条好的出路吗,现在考公务员还行不行?这需要结合我们当下的环境来综合分析。我们都经历了疫情,期间各个大厂频频将裁员大棒挥…

《Spring揭秘》读书笔记 1:IoC和AOP

1 Spring框架的由来 Spring框架的本质:提供各种服务,以帮助我们简化基于POJO的Java应用程序开发。 各种服务实现被划分到了多个相互独立却又相互依赖的模块当中: Core核心模块:IoC容器、Framework工具类。 AOP模块:S…

如何抓住风口,利用互联网赚钱?(內含三大商业模式推荐)建议收藏

大家好,我是你们熟悉而又陌生的好朋友梦龙,一个创业期的年轻人 今天跟你做个分享,众所周知互联网是一块非常大的蛋糕,几位互联网巨头也做不到完全吃透,同时也是一个门槛较低的创业之路,非常的适合年轻人&a…

8、Javaweb_ServlethttpRequst

Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方…

C语言-指针进阶-常见笔试面试题详解(9.4)

目录 思维导图&#xff1a; 指针和数组笔试题 指针笔试题 写在最后&#xff1a; 思维导图&#xff1a; 指针和数组笔试题 只有多刷题&#xff0c;才能巩固提高所学的知识。 例1&#xff1a; #include <stdio.h>int main() {//一维数组int a[] { 1,2,3,4 };//求出…

「精研科技」× 企企通,全球MIM龙头借助采购供应商数字化向多领域突破

近日&#xff0c;金属粉末注射成型&#xff08;MIM&#xff09;龙头企业江苏精研科技股份有限公司&#xff08;以下简称“精研科技”&#xff09;与企企通达成合作。双方将共同构建完整的采购管理和供应商协同平台&#xff0c;加强供应商管理&#xff0c;提高采购效率&#xff…

Netty源码性能分析 - ThreadLocal PK FastThreadLocal

序 既然jdk已经有ThreadLocal&#xff0c;为何netty还要自己造个FastThreadLocal&#xff1f;FastThreadLocal快在哪里&#xff1f;这需要从jdk ThreadLocal的本身说起。在java线程中&#xff0c;每个线程都有一个ThreadLocalMap实例变量&#xff08;如果不使用ThreadLocal&…

使用Alexnet实现CIFAR100数据集的训练

如果对你有用的话&#xff0c;希望能够点赞支持一下&#xff0c;这样我就能有更多的动力更新更多的学习笔记了。&#x1f604;&#x1f604; 使用Alexnet进行CIFAR-10数据集进行测试&#xff0c;这里使用的是将CIFAR-10数据集的分辨率扩大到224X224&#xff0c;因为在测试…

【ROS】—— ROS常用组件_TF坐标变换_多态坐标变换与TF坐标变换实操(十一)

文章目录前言1. 多态坐标变换1.1 发布方1.2 订阅方(C)1.3 订阅方(python)2. 坐标系关系查看3. TF坐标变换实操(C)3.1准备3.2 生成新的乌龟3.3 增加键盘控制3.4 发布方(发布两只乌龟的坐标信息)3.5 订阅方(解析坐标信息并生成速度信息)前言 &#x1f4e2;本系列将依托赵虚左老师…