<Linux>权限管理|权限分类|权限设置|权限掩码|粘滞位

文章目录

  • Linux权限的概念
  • Linux权限管理
    • a. 文件访问者的分类
    • b. 文件类型和访问权限
    • c. 文件权限表示方法
    • d. 文件权限的设置
    • 权限掩码
    • file指令
    • 粘滞位
  • 权限总结
  • 权限作业

Linux权限的概念

Linux下有两种用户:超级用户(root)和普通用户。

  • 超级用户:可以在Linux系统下做任何事情,不受限制
  • 普通用户:在Linux下做有限的事
  • 超级用户的提示符是“#”,普通用户的提示符是“$”
    image-20230806165553469

命令su用来切换用户
语法:su 用户名
功能:切换用户
例如,从root切换为sy,只需要su sy即可,若从普通用户切换为超级用户可以su root,root可以省略(切换为超级用户时需要输入root密码)

Linux权限管理

我们针对一件事可不可以被做时需要考虑两方面,一是这件事针对的不同的对象是否可以被做,二是这件事本身是否可以被做。

Linux中的权限也应该从这两方面考虑

  1. 文件访问者的分类(人)
  2. 文件类型和访问权限(事物属性)

a. 文件访问者的分类

访问者一般分为以下3类

  • 文件和目录的所有者:u—User
  • 文件和目录的所有者所在的组的用户:g—Group
  • 其他用户:o—Others

b. 文件类型和访问权限

文件信息:

image-20230806171024029

文件类型:

d:文件夹

-:普通文件(源文件、可执行文件)

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

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

s:套接口文件

基本权限:

i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

iv.“-”表示不具有该项权限

c. 文件权限表示方法

字符表示

Linux表示说明
---文件目录不可读不可写不可执行
r --文件目录只可读
-w-文件目录只可写
--x文件目录只可执行
rw-文件目录可读可写
r-x文件目录可读可执行
-wx文件目录可写可执行
rwx文件目录可读可写可执行

进制表示

权限符号8进制表示二进制表示说明
---0000文件目录不可读不可写不可执行
r --4100文件目录只可读
-w-2010文件目录只可写
--x1001文件目录只可执行
rw-6110文件目录可读可写
r-x5101文件目录可读可执行
-wx3011文件目录可写可执行
rwx7111文件目录可读可写可执行

若文件的权限符号是rwxr-xr-x,则该文件的拥有者对文件可读可写可执行,所属组对文件可读可执行,其他人对文件可读可执行。该权限可以用755表示

d. 文件权限的设置

chomd
功能:修改文件目录的权限
格式:chmod [参数] 权限 文件名
参数:

R : 递归修改目录文件的权限

注意:只有root和拥有者可以更改文件权限

chmod修改权限的格式

  1. 用户表示符±=权限字符

    • +:向权限范围增加权限代号所表示的权限

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

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

    • 用户符号:

      u:拥有者

      g:拥有者同组用

      o:其它用户

      a:所有用户

image-20230806191856310

  1. 三位八进制数字

image-20230806192531267

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

image-20230806193755364

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

image-20230806194049268

权限掩码

新建的文件默认权限是666,新建的目录默认权限是777,但是实际看见的文件默认权限是664,目录权限是775,这是因为umask(权限掩码)的存在image-20230806222946026

当前状态权限掩码的默认值为002(八进制)image-20230806223333958

因此实际权限=默认权限减去权限掩码

这里的减去不是数学上的减,而是将与权限掩码为1的位所对应的二进制位置为0
例如文件最初权限二进制串是110110110,掩码二进制串000000010,将文件最初权限倒数第二个二进制位变成0就是110110100
用计算机语言就是实际权限=默认权限&(~权限掩码)

ps:
root用户的默认权限掩码是0022;普通用户的默认权限掩码是0002
image-20230807101451159

为什么文件的最初权限是666呢?
因为直接创建的文件都不可以直接执行,因此将最初权限设置位666
为什么文件的最终权限是664?
因为通常情况我们不希望other可以对文件的内容进行修改,只给other读文件的权限
为什么目录的最终权限是775呢?
首先,读目录就是查看当前目录下存在的文件,写目录就是在当前目录下删除/添加文件,执行目录就是进入该目录,任意创建的一个目录,我们并不希望others可以随意删除该目录下的内容,因此将other的w权限去掉,最初权限位775.


file指令

功能语法:辨识文件类型
语法:file [选项] 文件或目录
常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形
  • -z 尝试去解读压缩文件的内容

image-20230807101945826

粘滞位

如果现在存在这样一种情况:你是老板,你命令手下的员工小王和小李在你所创建的目录dir下共同工作,小王在dir下创建了test1.txt,小李在dir下创建了test2.txt。test1.txt对other的权限是---,因此小李不可以查看text1.txt,但是dir对other的权限一定是rwx,也就是说小李在这种情况下可以删除text1.txt。小王的初衷就是不给小李查看自己写的文件,你倒好,直接把文件给删了,是不是不太合理?,在这种情况下,我们可以设置粘滞位

语法:chmod +t 目录

image-20230807103843984

当目录被设置成粘滞位时,该目录下的文件只能被

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

权限总结

  • 权限可以用字符表示:rwxrwxrwx;可以用进制表示:777
  • root用户或者文件目录的拥有者可以通过chmod改变权限
  • root用户可以通过chown改变文件的拥有者,chgrp改变文件的所属组
  • 实际权限=最初权限&(~权限掩码)

文件权限:

  1. r权限表示是否可以读取文件内容
  2. w权限表示是否可以对文件的内容进行修改
  3. x权限表示是否可以执行该文件
  4. 一般创建的文件都不具有可执行性,因此文件最初的权限是666

目录权限:

  1. r权限表示是否可以查看当前目录下所有的文件或子目录
  2. w权限表示是否可以在当前目录下创建/删除文件、子目录
  3. x权限表示是否可以cd到当前目录下
  4. 目录的最初权限是777,普通用户创建的目录最终权限是775
  5. 可以对目录设置粘滞位保证该目录下的文件不能随意被删除

权限作业

  1. 以下哪个命令输出Linux内核的版本信息:

  2. linux查看cpu占用的命令是什么?
    image-20231116223722915

  3. 在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?
    image-20231116223757334

  4. image-20231116223854721

image-20231116223911916

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

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

相关文章

学生党的福利!移动云重磅升级存储产品体系

如今,随着科学技术不断发展进步,电子产品的生产技术也变得越来越成熟。一方面,电子产品的功能越来越强大,质量越来越可靠;另一方面,产品价格越来越便宜,在人们生活中越来越普及。大学生群体可以…

基于纳什博弈的多微网主体电热双层共享策略(matlab代码)

目录 ​1 主要内容 2 部分代码 3 程序结果 4 下载链接 ​1 主要内容 该程序复现《Multi-Micro-Grid Main Body Electric Heating Double-Layer Sharing Strategy Based on Nash Game》模型,主要做的是构建基于纳什博弈的多微网主体电热双层共享模型,…

java项目之木里风景文化管理平台(ssm+vue)

项目简介 木里风景文化管理平台实现了以下功能: 前台功能:用户进入系统可以实现首页,旅游公告,景区,景区商品,景区美食,旅游交通工具,红黑榜,个人中心,后台…

squid代理服务器(传统代理、透明代理、反向代理、ACL、日志分析)

一、Squid 代理服务器 (一)代理的工作机制 1、代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。 2、将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速…

Stable Diffusion XL网络结构-超详细原创

强烈推荐先看本人的这篇 Stable Diffusion1.5网络结构-超详细原创-CSDN博客 1 Unet 1.1 详细整体结构 1.2 缩小版整体结构 以生成图像1024x1024为例,与SD1.5的3个CrossAttnDownBlock2D和CrossAttnUpBlock2D相比,SDXL只有2个,但SDXL的Cros…

Rust语言精讲:数据类型全解析

大家好!我是lincyang。 今天,我们将深入探讨Rust语言中的数据类型,这是理解和掌握Rust的基础。 Rust语言数据类型概览 Rust是静态类型语言,所有变量类型在编译时确定。Rust的数据类型分为两类:标量类型和复合类型。…

动态神经网络时间序列预测

大家好,我是带我去滑雪! 神经网络投照是否存在反锁与记忆可以分为静态神经网络与动态神经网络。动态神经网络是指神经网络带有反做与记忆功能,无论是局部反馈还是全局反锁。通过反馈与记忆,神经网络能将前一时刻的数据保留&#x…

【ARM AMBA AXI 入门 15 -- AXI-Lite 详细介绍】

请阅读【ARM AMBA AXI 总线 文章专栏导读】 文章目录 AXI LiteAXI-Full 介绍AXI Stream 介绍AXI Lite 介绍AXI Full 与 AIX Lite 差异总结AXI Lite AMBA AXI4 规范中包含三种不同的协议接口,分别是: AXI4-FullAXI4-LiteAXI4-Stream 上图中的 AXI FULL 和 AIX-Lite 我们都把…

【GUI】-- 12 贪吃蛇小游戏之让小蛇动起来

GUI编程 04 贪吃蛇小游戏 4.3 第三步:让小蛇动起来(键盘控制) 首先,在构造器中要获取焦点事件、键盘监听事件并加入定时器(定时器定义需要实现ActionListener接口并重写actionPerformed方法): //构造器public GamePanel() {init();this.s…

jbase仪器接口设计

jbase的计划有借助虚拟M来实现连仪器,之前陆续写了些TCP逻辑,今天终于整理完成了仪器设计。首先用java的cs程序测试TCP的服务和客户端。 javafx的示例加强 package sample;import javafx.application.Application; import javafx.event.EventHandler; …

Web 自动化神器 TestCafe—页面基本操作篇

前 言 Testcafe是基于node.js的框架,以操作简洁著称,是web自动化的神器 今天主要给大家介绍一下testcafe这个框架和页面元素交互的方法。 一、互动要求 使用 TestCafe 与元素进行交互操作,元素需满足以下条件:☟ 元素在 body 页…

专访特斯拉工程师杨硕:跟着机器人上天入地、探索地外行星丨智源独家

导读 十几岁时,他痴迷《终结者》,曾在百科全书中窥见卡内基梅隆大学机械臂的介绍,从而得知了研究机器人「圣地」的存在。 在CMU,他深耕足式机器人感知定位算法,期待未来涉足太空,走上火星。 在大疆&#xf…

瑞格心理咨询系统设置多个管理员的操作方法

使用瑞格心理咨询系统,需要设置多个admin权限的管理员账号来管理,咨询厂家答复只能有1个管理员,个人觉得不可能,于是开始折腾。 解决办法: 在没有数据字典的情况下, 通过遍历数据库,发现用户信…

『 Linux 』使用fork函数创建进程与进程状态的查看

文章目录 🖥️ 前言 🖥️🖥️ 通过系统调用获取进程标识符 🖥️💻 进程标识符PID💻 父进程标识符PPID 🖥️ 通过系统调用创建子进程 fork() 🖥️💻 那么为什么在fork()函…

线程池简介及其简单实现

如果需要频繁的创建销毁线程, 就需要想办法降低创建和销毁的开销, 而线程池就是一个很好的选择: 提前创建好一些线程, 等到需要使用线程的时候, 直接从池子里拿一个就好了, 当不再使用该线程时, 就放回到池子里. 那么此时就从 创建/销毁线程 -> 池子里取线程/将线程还到池子…

构建智能医患沟通:陪诊小程序开发实战

在医疗科技的浪潮中,陪诊小程序的开发成为改善医患沟通的创新途径之一。本文将介绍如何使用Node.js和Express框架构建一个简单而强大的陪诊小程序,实现患者导诊和医生咨询功能。 1. 安装Node.js和Express 首先确保已安装Node.js,然后使用以…

Linux procps-ng - top

procps-ng 是一个开源的进程管理工具集,它提供了一系列用于监控和管理系统进程的命令行工具。它是 procps 工具集的一个分支,旨在改进和增强原有的 procps 工具。 procps-ng 包括了一些常用的命令行工具,例如: ps:用于…

机器学习笔记 - 创建CNN + RNN + CTC损失的模型来识别图像中的文本

我们将创建一个具有CTC损失的卷积循环神经网络来实现我们的OCR识别模型。 一、数据集 我们将使用 Visual Geometry Group 提供的数据。 Visual Geometry Group - University of OxfordComputer Vision group from the University of Oxfordhttps://www.robots.ox.ac.uk/~vgg/d…

最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

leetcode:415. 字符串相加(模拟竖式计算)

一、题目 链接: 415. 字符串相加 - 力扣(LeetCode) 函数原型:char* addStrings(char* num1, char* num2) 二、思路: 本题本质是将两个字符型数字相加,字符型数字相加就一定需要进行字符与数字的相互转换 详…