【Linux】1.4 基本权限

news2024/11/15 11:13:18

文章目录

  • 一、shell 命令以及运行原理
  • 二、Linux 权限的概念
  • 三、Linux 权限管理
    • 01.文件类型和访问权限(事物属性)
    • 02.文件访问的分类(人)
      • ①用户分类
      • ②角色划分
    • 03.文件权限值的表现方法
    • 04.文件访问权限的相关设置方法
      • (a.)chmod 指令
      • (b.)chown 指令
      • c)chgrp
  • 补充:file 指令
  • 四、目录的权限
    • umask
  • 五、粘滞位
  • 六、关于权限的总结


一、shell 命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

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

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

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

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

在这里插入图片描述
注:shell 和 bash 就像是水果和苹果之间的关系,bash 是 shell 的其中一个。


二、Linux 权限的概念

权限:人 + 事物属性(这里的事物主要是指文件)


三、Linux 权限管理

01.文件类型和访问权限(事物属性)

在这里插入图片描述

  • 文件类型:
    Linux下不用文件后缀区分文件类型
    • d:文件夹
    • -:普通文件
    • l:软链接(类似Windows的快捷方式)
    • b:块设备文件(例如硬盘、光驱等)
    • p:管道文件
    • c:字符设备文件(例如屏幕等串口设备)
    • s:套接口文件

文件后缀名的意义:给用户自己看;用于其他软件识别文件类型
例如:gcc(如下)

用 gcc 编译文件:
[root@VM-12-2-centos dir3]# gcc test2.c
[root@VM-12-2-centos dir3]# tree
.
|-- a.out
|-- dir
|-- hi
|-- test2.c
`-- test.txt
1 directory, 4 files
[root@VM-12-2-centos dir3]# ./a.out

改变文件名的后缀:
Hello World![root@VM-12-2-centos dir3]# mv test2.c test2.txt
[root@VM-12-2-centos dir3]# gcc test2.txt
test2.txt: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
👆 gcc 无法编译
  • 文件权限:
    三三为一组,分别对应—— 读、写、执行 ——rwx (顺序不可变!)
    一共三组,每组分别对应——文件拥有者、文件所属组、其他(other)

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

02.文件访问的分类(人)

①用户分类

  • 超级用户 root ——基本不受权限约束
  • 普通用户

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

  • su - :以 root 用户重新登录,默认在用户的家目录下
  • su [username]:切换到其他用户(但要在 root 用户的情况下才可以随意切换),没指明切换到哪个用户(没写 [username])默认是切换到 root 用户,然后提示需要输入对应切换到的用户的密码
  • sudo [command]:对单条指令提权
  • ctrl + d :退出

②角色划分

  • 三种角色:
    1.文件拥有者;
    2.文件所属组;(类似开放朋友圈指定好友可见的“指定好友”)
    3.其他(other).

03.文件权限值的表现方法

  • 字符表示法
Linux表示说明
r–只读
-w-仅可写
–x仅可执行
rw-可读可写
-wx可写和可执行
……
rwx可读可写可执行
- - -无权限
  • 8进制表示方法
权限符号 (读写执行)八进制二进制
r–4100
-w-2010
–x1001
rw-6110
……
rwx7111
- - -0000

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

(a.)chmod 指令

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

  • 格式:chmod [参数] 权限 文件名

  • 常用选项:

    • R -> 递归修改目录文件的权限(说明:只有文件的拥有者和root才可以改变文件的权限)
  • chmod
    ① 用户表示符+/-=权限字符
    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限
    用户符号:
    u:拥有者
    g:拥有者同组用
    o:其它用户
    a:所有用户

示例:

eg. chmod u+r [文件]:给该文件 拥有者 增加 读 权限
eg. chmod g+w [文件]:给该文件 所属组 增加 写 权限
eg. chmod o-rwx [文件]:给 其他人 减去 读写执行 权限

②三位8进制数字

  • 有权限:1
  • 无权限:0

如下图 rwxr-xr-x 换算成二进制 111 101 101 换算成八进制就是:7 5 5
在这里插入图片描述
如下指令:

chmod 777 [文件] 

777 → 111 111 111 → rwx rwx rwx 即设定 文件所有者、文件所属组、其他 的权限均为:可读可写可执行

(b.)chown 指令

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

c)chgrp

  • 功能: 修改文件或目录的所属组
  • 格式: chgrp [参数] 用户组名 文件名
  • 常用选项: -R 递归修改文件或目录的所属组

补充:file 指令

  • 功能说明: 辨识文件类型。
  • 语法: file [选项] 文件或目录...
  • 常用选项:
    • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
    • -z 尝试去解读压缩文件的内容。

四、目录的权限

  • 进入目录 需要什么权限? → answer:x
    在这里插入图片描述
  • 默认权限(不同的操作系统,默认权限可能不一样)
文件类型默认权限
普通文件664
目录775
权限类型含义
默认权限你看到的
起始权限系统设定的
最终权限最终设定的权限
  • 起始权限
文件类型起始权限
普通文件666
目录777

umask

  • 起始权限 → 最终权限?(how?)
    在这里插入图片描述

超级用户默认掩码值为0022,普通用户默认为0002。

0 0 0 2(8进制)→ 转化为二进制 → 000 000 010

普通文件 的 起始权限:666
6 6 6 → 转化为二进制 → 110 110 110
0 0 2 → 转为为二进制 → 000 000 010

权限掩码:在起始权限中,去掉在umask中出现的权限,不影响其他任何权限
在这里插入图片描述
运算过程:最终权限 = 起始权限 & (~umask)

关于 umask 指令:

# umask //查看
# umask 044//设置  → 更改 umask 的值

五、粘滞位

背景:共享目录 开放于 所有普通用户,用于保存产生的临时文件(家目录一般只对使用者自己开放,一般由 root 提供),虽然受到权限的约束,由于 共享目录的 开放性 导致别的用户可以 删除 我的文件。

  • 为什么 别人可以删除我的文件?

    • 能访问目录就具有 w 权限,w 权限能创建文件,亦能删除文件(必须有 w 权限,不然这个共享目录就没法用)
  • 如何解决 这个“其他用户可能删除共享目录下我的文件”的问题?

    • 粘滞位
  • 操作:(sudo) chmod +t [dir] # 加上粘滞位
    在这里插入图片描述

在这里插入图片描述
设置粘滞位之后谁还能删除?

  1. root
  2. 文件拥有者
  3. 文件所属组

六、关于权限的总结

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

END

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

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

相关文章

STC8H8K64U单片机-看门狗配置与讲解

1、看门狗寄存器讲解 (bit7)WDT_FLAG:看门狗溢出标志,看门狗发生溢出时,硬件自动将此位置1,需要软件清零 (bit5)EN_WDT:看门狗使能位 0&#x…

被优化了怎么办?他苦学仨月拿到11koffer

网上有个段子叫做“生活就是起起落落落落落落”。人生在世,本就不易,再加上最近大环境影响,各行各业都在内卷,身为芸芸众生的一员,我们也难免受到影响,面临福利裁剪、降薪、甚至被优化的风险。 大环境我们…

面了20家大厂,发现这样介绍项目经验,显得项目很牛...

我在刚刚开始面试的时候,也遇到了这个问题,也是我第一个思考的问题,如何介绍自己的项目,既可以比较全面的让面试官了解这个项目,同时,也不会让面试官觉得废话太多。经过这么多的面试,我发现&…

JavaWeb+JSP+路径问题+跳转(HTML|Servlet|JSP)|这一篇就够了(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

ChatGPT真能取代程序员吗,看看它怎么解释SQL注入漏洞的问题

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:Beerus|慕课网讲师 背景 本周在《Web安全渗透测试》课程的QQ群中,有同学提问了一个关于网上一个关于SQL注入…

大淘宝技术斩获NTIRE 2023视频质量评价比赛冠军(内含夺冠方案)

近日,CVPR NTIRE 2023 Quality Assessment of Video Enhancement Challenge比赛结果公布,来自大淘宝音视频技术团队的同学组成「TB-VQA」队伍,从37支队伍中脱颖而出,拿下该比赛(唯一赛道)冠军。此次夺冠是团…

Mysql replace into与on duplicate key update区别

1、replace into REPLACE INTO 首先判断数据是否存在;如果不存在,则插入;如果已存在则更新(先删除再插入 根据主键或唯一索引判断记录是否已存在,所以插入数据的表必须要有主键或者唯一索引!否则的话&…

Java 实现访问Redis哨兵(六)

目录 一、哨兵和复制 1.1 哨兵(sentinal) 1.Redis哨兵主要功能 2.Redis哨兵的高可用 1.2 Redis复制(Replication) 1.数据复制原理(执行步骤) 1.3 Redis 主从复制、哨兵和集群这三个有什么区别 二、Java访问哨兵实现 一、哨兵和复制 谈到Redis服务器的高可用&#xff0c…

【笔记】I2S协议是什么?

什么是I2S协议 I2S协议的介绍I2S协议有什么 这两天在搞ESP32的btAudio库,接触到了I2S,简单做个笔记。 I2S协议的介绍 I2S(Inter—IC Sound)总线, 又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标…

2.QT窗口部件

类继承关系图 (上面为Base类,下面为Derived类) 窗口与子部件 窗口:没有父部件的部件,称为顶级部件 子部件:非窗口部件 新建空的qmake项目mywidget1 //mywidget1.proQT core gui greaterThan(QT_MAJO…

这是一个黑科技:C++爬虫~(文末报名C/C++领域新星计划)

目录 写在前面 完整代码 这里必看!! 写在最后 写在前面 现在所有人都知道万能的Python可以做机器学习,可以做人工智能,可以爬取各种小网站,但是你不知道,基于C的正则表达式早就能够爬取各种网络数据啦&a…

华为OD机试——对称美学(通过率只有8.51%???)

用java写的这道题,两个样例都可以通过,但是提交之后最终的通过率只有8.51%???自己搞了半天一直都是这个通过率,然后用网上说的100%通过率的代码也是一样的结果,最后时间到了还是没有拿到满分&am…

这些vue基本语法,你掌握了吗

文章目录 一、 vue 项目重点概念介绍1. 单页面应用程序2. 单文件组件3.数据驱动视图 二、 vue 基本结构1、template2、script3、style 三、 vue 常用指令介绍1、内容渲染指令(1)插值表达式 {{xxx}} —常用方式(2)v-text&#xff0…

session和JWT的应用及区别

文章目录 登录认证(node)一、session1.下载session2.全部配置session3.存储session4.获取session5.销毁session 二、JWT (Json web token)1.JWT 的工作原理2.JWT 的组成3.下载JWT4.生成token5.解密TOken6.配置全局错误中间件 登录认证(node) 一、session 一、在node中使用sess…

还不懂Redis?看完这个故事就明白了!

还不懂Redis?看完这个故事就明白了! 我是Redis 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊源的。 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也…

全国独家专利药品有哪些品种?全国独家药品产品汇总查阅

独家药品一般是指某一家药企拥有生产和销售某种药品的独家权利,细分有活性成分独家(通用名成分独家)、品种独家(同成分不同剂型)、独家品规,通俗可以分成药品功能独家和产品独家。独家药品经常被人认为是具…

证件拍照扫描——基于C++与深度神经网络实现证件识别扫描并1比1还原证件到A4纸上

前言 数字化时代的到来,越来越多的证件需要进行电子化处理,例如身份证、驾驶证、护照等。在进行电子化处理时,最常见的需求就是将证件照片复制到A4纸上,以便于打印、存档或传输。同时,为了方便信息的录入和管理&#…

一条命令搭建HTTP服务器

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 转载自远程内网穿透的文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透…

word自带公式编辑

快捷键: 公式编辑:alt“” 上标:x^i 空格 下标:x_i 空格 实数R:\doubleR 空格 偏微分算子:“\partial” 极限:“\limit”(按空格后会显示一串很长的式子,再空格就变…

在Linux操作系统上部署wgcloud监控

1.wgcloud监控介绍 1.1 介绍 ​ 这是一款开源的主机监控系统,可以支持主机各种指标监测(cpu使用率,cpu温度,内存使用率,磁盘容量空间,磁盘IO,硬盘SMART健康状态,系统负载&#xff…