【Linux】权限管理

文章目录

  • 前言
  • 1.权限访问者的分类
  • 2.文件类型与访问权限
  • 3.文件权限值的表达方式
  • 4.文件访问权限的相关设置
  • 5.file指令
  • 6.目录权限理解与漏洞
  • 7.粘滞位的理解

前言

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

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

命令:su [用户名],功能是切换用户。例如,我们要从超级用户切换到普通用户,我们则使用su [name],这里我们一般不需要输入密码。要从普通用户切换到超级用户的话就输入su root,root也可以省略,此时系统会提示输入root用户的口令。
在这里插入图片描述
重点:su - 是切换为root用户命令。

1.权限访问者的分类

1.文件的拥有者owner
2.文件的所属组grouper
3.文件的其他用户other

如何理解所属组这个概念呢,就拿一个公司的两个研发小组打比方:
在这里插入图片描述
他们一起开发同一个项目,如果没有所属组,A组成员创建一个文件,并开放权限给自己的组员查看,那么这个文件他自己(拥有者)可以看见,B组的成员(other)也能看见。而从现实来说,A组成员是不希望B组成员看到的,所以就有了所属组这个概念。设置所属组就可以让A组成员之间看到A组的文件,而B组看不到。

2.文件类型与访问权限

Linux不以后缀来区分文件类型,但是其中的编译器等工具以后缀名区分文件类型。
在这里插入图片描述
在这里插入图片描述
注意:这里第一个root是拥有者,第二个root是所属组。

文件类型:目录文件,所有者(owner):可读可写可执行(rwx);用户组(grouper):可读可写可执行(rwx);其他用户(other):可读可执行(r-x)。

文件类型:d和-占有95%—目录文件、普通文件。

d:目录文件
-:普通文件(文本、源代码、可执行程序、第三方静态库)
l:链接文件(类似windows的快捷方式)
b:块设备文件(硬盘、光驱)
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

基本权限:有字符表示和八进制表示方法(有这个权限就八进制加法得出八进制数,比如rwx=1+2+4=7,八进制7表示rwx权限)。

读®:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限.
执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-:表示该项无权限。

3.文件权限值的表达方式

在这里插入图片描述

4.文件访问权限的相关设置

方法:chmodchownchgrpumask
1.chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:

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

chmod命令权限值的定义:
①用户表示符 + - =权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
在这里插入图片描述

②修改所有权限:chmod a=x /home/abc.txt。
③三位8进制数字。

在这里插入图片描述
熟记:777所有权限都有—111 111 111,000所有权限都没有—000 000 000,666去除other权限—110 110 110。

八进制转二进制数(一个位转2进制),然后一一匹配位置就知道r w x的权限。

在这里插入图片描述

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

非root用户直接使用—chown 用户名 file会报错—Operation not permitted

正确用法:sudo chown 用户名 file—这里的sudo就是提升权限的意思:以root身份去运行程序chown

在这里插入图片描述

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

在这里插入图片描述
umask:
功能: 查看或修改文件掩码。
1.格式:umask 权限值 说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限
2.对于减去的解释:这里的减去不是指二进制的加减,而是和umask的取反结果按位与
3.新建文件夹默认权限=0666 新建目录默认权限=0777(不同系统可能有差异) 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。
4.假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
5.超级用户默认掩码值为0022,普通用户默认为0002
6.默认权限不是最终权限—>最终权限=默认权限 & (~umask)—即:默认权限和umask取反结果按
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.file指令

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

-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容
在这里插入图片描述

6.目录权限理解与漏洞

可读权限(w): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
可写权限®: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
其他用户不能读写你的文件,但是我可以删除你。为了解决这个不科学的问题, Linux引入了粘滞位的概念。

7.粘滞位的理解

我们设置权限不让其他用户不能读写一个文件,这是可以的;但是防不住别人删这个文件!一个共享目录下,你不让我写,不让我读,但防不住我删除!因此诞生了粘滞位!
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:owner和root删除,other不能删除。

一、超级管理员(root)删除

二、该目录的所有者(owner)删除

三、该文件的所有者(owner)删除

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

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

相关文章

Vue3 + Vite + TS + Element-Plus + Pinia项目(3)--新建路由

1、在src文件夹下新建router文件夹后,创建index.ts文件 2、具体如下 import { createRouter, createWebHashHistory } from vue-routerconst router createRouter({history: createWebHashHistory(),routes: [{path: "/index",component: () > impor…

关于YOLOv9项目中使用已有模块自由改进的教程

专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 1. 文件说明 在YOLOv5-v9,模型的结构是以yaml文件的存储。我们可以在原有的yaml基础上增、减、改模块,创作我们自己的模型。 …

ASM四部曲之一:什么是ASM

文章目录 前言什么是.class文件什么是ASM概述作用域模型基于ASM的程序架构 ASM库结构 前言 本文翻译自ASM官方文档。 什么是.class文件 Java字节码文件(.class)是Java编译器编译Java源文件(.java)产生的目标文件。它是一种8位字…

基于SpringBoot+Layui的社区物业管理系统

项目介绍 社区物业管理系统是基于java程序开发,本系统分为业主和管理员两个角色 业主可以登陆系统,查看车位费用信息,查看物业费用信息,在线投诉,查看投诉,在线报修; 管理员可以车位收费信息,物业收费信息,投诉信息,楼宇信息,房屋信息,业主信息,车位信息,抄表信…

芯片设计工程师必备基本功——《Verilog+HDL应用程序设计实例精讲》

进入芯片行业需要学习哪些基本功呢?其实芯片设计工程师的技能是通过多年的经验学习的。在您开始作为芯片设计工程师工作之前,很难给出一个需要的全面的单一列表,也不可能学习所有内容。话虽如此,但您开始芯片设计师职业生涯时必须…

瑞萨杯(一)

基础信息 RA6M5:ARM V8架构,24MHz外置晶振,200MHz主频 SCI(Serial Communications Interface),意为串行通信接口 参考链接: 【瑞萨RA系列FSP库开发】RASCKeil的环境搭建_瑞萨ra mdk-CSDN博客…

Web安全基础入门+信息收集篇

教程介绍 学习信息收集,针对域名信息,解析信息,网站信息,服务器信息等;学习端口扫描,针对端口进行服务探针,理解服务及端口对应关系;学习WEB扫描,主要针对敏感文件,安全漏洞,子域名信息等;学习信息收集方法…

【webpack】----错误解决【Cannot read properties of undefined (reading ‘tap‘)】

1. 报错场景 安装 webpack-obfuscator 后,进行 js 代码混淆编译的时候报错。 2. 报错截图 3. 错误原因 通常是由于版本不兼容或配置错误引起的。 4. 查询本地 webpack 版本 4.1 查询命令 npm 查询 npm view webpack versionyarn 查询 yarn info webpack ver…

2024年第14届生物医学工程与技术国际会议(ICBET 2024)即将召开!

2024年第14届生物医学工程与技术国际会议(ICBET 2024)将于2024年6月14日至17日在韩国首尔举行。 会议旨在汇聚来自世界各地的研究人员、工程师、院士和行业专业人士,展示他们在生物医学工程与技术领域的最新研究成果和进展。 会议以“生物医学…

欧拉法和Runge-Kutta(龙格-库塔)方法

Euler方法有各种格式,但其精度最高不超过2阶,一般难以满足实际计算的精度要求。因此,有必要构造精度更高的数值计算公式求解微分方程。Runge-Kutta方法就是一种高精度的经典的解常微分方程的单步方法。 下面是欧拉法例子: 参考链接…

【JavaEE -- 网络初识】

网络初识 1. 局域网和广域网1.1 局域网(LAN)1.2 广域网WAN 2. 网络通信基础2.1 IP地址2.2 端口号 3. 协议 -- 重点3.1 网络通信协议拆分成多层3.2 TCP/IP 五层网络协议 4. 封装和分用4.1 封装过程4.2 分用过程4.3 网络传输的数据单位 5. 网络编程中的客户…

Java基础-反射

文章目录 1.快速入门1.案例引入2.代码实例3.反射机制原理图 2.反射相关类1.反射获取类的成员代码实例结果 2.反射调用优化1.关闭访问检查2.代码实例 3.Class类1.类图2.基本介绍3.Class类常用方法代码实例结果 4.获取Class类对象代码实例结果 5.哪些类型有Class对象 4.类加载1.基…

学习刷题-13

3.23 hw机试【二叉树】 剑指offer32 剑指 offer32(一、二、三)_剑指offer 32-CSDN博客 从上到下打印二叉树I 一棵圣诞树记作根节点为 root 的二叉树,节点值为该位置装饰彩灯的颜色编号。请按照从 左 到 右 的顺序返回每一层彩灯编号。 输…

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景: Sentinel 承接了阿里巴…

微服务(基础篇-003-Nacos集群搭建)

目录 Nacos集群搭建 1.集群结构图 2.搭建集群 2.1.初始化数据库 2.2.下载nacos 2.3.配置Nacos 2.4.启动 2.5.nginx反向代理 2.6.优化 视频地址: 06-Nacos配置管理-nacos集群搭建_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p29&…

Vue字符串里的中文数字转换为阿拉伯数字

js字符串里的汉字数字转化为数字 <template><view><view><view class"inpbox" ><textarea v-model"voiceMane" input"convert" ></textarea></view></view></view> </template> &…

SpringCloudAlibaba之Nacos Config

1、服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 配置文件相对分散。在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的越来越多&#xff0c;而且分散在各个微服务中&#xff0c;不好统一配置和管理。配置文件无法区分环境…

【windows】安装 Tomcat 及配置环境变量

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

Protobuf基础使用

Protobuf是什么 在我们日常编写代码的过程中&#xff0c;经常会涉及到网络传输的部分。我们通常会在网络之间传递各种各样的请求&#xff0c;但是在我们日常架构之中&#xff0c;经常会涉及后端服务器之间的通信&#xff0c;通信过程中&#xff0c;可能传递的对象就是一个类。…

大数据基础:Linux基础详解

课程介绍 本课程主要通过对linux基础课程的详细讲解&#xff0c;让大家熟练虚拟机的安装使用&#xff0c;Linux系统的安装配置&#xff0c;学习掌握linux系统常用命令的使用&#xff0c;常用的软件安装方法&#xff0c;制作快照&#xff0c;克隆&#xff0c;完成免密登录&…