• 【Linux】Shell及Linux权限


    Shell

    Shell的定义

    • Shell最简单的定义是:命令行解释器。

    • Shell的主要任务:1. 将使用者的命令翻译给核心进行处理。2.将核心的处理结果翻译给使用者

    为什么要有Shell?

    • 使用者和内核的关系就相当于两个完全陌生的外国人之间的关系,他们要进行交流必须要有一个翻译,这个翻译便是Shell,否则用户看不懂内核的处理结果,内核看不懂用户的操作

    • 我们使用Windows的时候主要是通过Windows的GUI来进行对Windows的操作,我们能够通过点击完成对Windows的操作(如打开一个游戏我们只需要双击它),GUI对Windows的作用类似于Shell对Linux,不同的是GUI是将我们的动作翻译给内核;而Shell是将我们的命令翻译给内核

    Linux的权限

    Linux中权限的概念

    • 在Linux眼里,用户分为两类:1. 普通用户。2.超级用户(root)

    两种用户身份转换的命令

    • 命令:su【用户名】

    • 从root用户切换成普通用户user:su user

    • 从普通用户切换成root:su root

    Linux的权限管理

    • 在Linux中一切皆文件,所以对Linux的权限管理便也是对文件进行管理。管理什么呢?管的是不同身份的人对文件的操作权限

    对使用者身份分类

    • 文件和文件目录的所有者:u——User

    • 文件和文件目录的所有者所在组的用户:g——Group

    • 其他用户:o——Other

    • 举个栗子:对于一辆车,你本人是它的所有者,你的家人是你所在组的用户,周围的邻居便是其他人。

    文件类型和访问权限

    • 由图可知,文件前面有很多字符(红色方框),这些字符意思是什么呢?

    • 这其实就是文件的类型和访问权限,概念图如下

    • 红框后面的字符是什么意思呢?分别是连接数、所属用户、所属用户组、文件大小、文件最新修改日期、文件名

    文件类型
    • d:文件夹

    • -:普通文件

    • l:软连接(类似于Windows的快捷方式)

    • b:块设备文件(如:硬盘光驱)

    • p:管道文件

    • c:字符设备文件(如屏幕等串口设备)

    • s:套接口文件

    • Linux中不依靠文件后缀来区分文件类型,但不代表不用后缀,一方面是因为Linux上的软件会依靠后缀来判断文件类型,另一方面是给人看的。

    基本权限
    • 读(r):对于文件来说,具有读取文件的权限;对于目录来说也具有浏览该目录信息的权限

    • 写(w):对于文件来说,具有修改文件内容的权限;对于目录来说具有删除、移动目录内文件的权限

    • 执行(x):对于文件来说,具有执行文件的权限;对于目录来说,具有进入目录的权限

    • -:表示目录不具有该项权限

    文件权限值的表示方法

    • 三个二进制位中,第一个代表着读权限、第二个代表着写权限、第三个代表着可执行权限,所以其8进制数值表示就是将三个二进制位转成八进制数字QWQ

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

    设置文件访问权限的命令
    • chmod:chmod [参数] 权限 文件名

    • 常用选项:R——递归修改目录文件的权限(只有文件的拥有者和root才有资格改变文件的权限)

    chmod命令权限值的格式
    • +:向权限范围增加权限代号所表示的权限

    • -:向权限范围取消权限代号所表示的权限

    • =:向权限范围赋予权限代号所表示的权限

    用户符号
    • u: 拥有者

    • g:拥有着同组

    • o:其他用户

    • a:所有用户

    实例
    • 第一种方法:使用用户符号+(操作)+权限符号+文件名

    • 第二种方法:使用八进制数字+文件名

    修改文件的拥有者
    • chown:chown 【参数】 用户名 文件名

    修改文件或目录的所属组
    • chgrp【参数】用户组名 文件名

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

    查看和修改文件掩码
    • umask:umask 权限值

    • 新建文件夹默认权限=0666

    • 新建目录默认权限=0777

    • 实际权限=起始权限&(~umask)

    • 超级用户的默认权限掩码是0011,普通用户的是0002

    file指令
    • 功能说明:辨识文件类型

    • file:file【选项】文件或目录

    • 常用选项

    • -c:详细显示指令执行过程,便于排错或分析程序执行的的情形

    • -z:尝试去解读压缩文件的内容。

    目录的权限

    • 可执行权限:如果目录没有可执行权限,则无法进入到目录当中。

    • 可读权限:如果目录没有可读权限,则无法使用ls等明年来查看目录中的文件内容。

    • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。 但这样会导致一个问题,那就是只要用户具有了目录的写权限,就可以在目录中删除和创建文件,而不论这个用户是否有这个文件的写权限。为了解决这个问题,Linux引入了粘滞位的概念

    粘滞位
    • 使用chmod+t来给目录设置

    • 被设置成粘滞位的目录只能有三种用户删除:1.超级管理员(root)2.该目录的所有者3.该文件的所有者

    关于目录权限的总结
    • 目录的可执行权限表示你是否可以进入该目录(即使你有目录的读权限,也无法看到目录中的内容)

    • 有可执行权限却没有读权限,此时你可以进入目录,但无法使用ls等命令读取目录下的文档

    总结

    • 介绍了shell的定义合作用

    • 介绍了Linux中权限的概念及其作用

    • 介绍了权限管理的相关命令的使用

  • 相关阅读:
    转载——比较器的原理
    laravel日期字段carbon 输出格式转换
    DAP+ESB预置样例组件配置心得
    1.go web之gin框架
    python制作自己的专属二维码
    Java 并发编程解析 | 每个Java Developer都应该知道的关于并发编程的那点事?
    CVE-2020-27986(Sonarqube敏感信息泄漏) 漏洞修复
    HTML5和CSS3的一些重要特性
    Dockerfile(基于jdk17)
    处理器架构和配置
  • 原文地址:https://blog.csdn.net/ZHENGZJM/article/details/136598766