【Linux】Linux权限

Linux权限

  • Linux下用户的分类
    • 切换用户
      • su 和 su - 的区别
    • 对命令提权
  • 权限的概念
  • Linux权限管理
    • 文件访问者的分类(人)
      • 1️⃣拥有者u→user
      • 2️⃣其他人o→others
      • 3️⃣所属组group
    • 文件类型和访问权限(事物属性)
      • 文件
      • 文件类型
      • 文件的基本权限属性
    • 文件权限值的表示方法
      • 字符表示方法
      • 8进制数值表示方法
    • 文件访问权限的相关设置方法
      • chmod
      • chown
      • chgrp
      • umask
        • 问题1:起始权限问题
        • 问题2:目录权限
        • 粘滞位

Linux下用户的分类

① root:超级用户
② 普通用户:我们新建的用户(adduser)

切换用户

语法:su [用户名]
功能:切换用户

例如,
①添加普通用户,使用adduser
②从root用户切换到普通用户user,使用 su user
③从普通用户切换root用户:su rootsu
(此时系统会提示输入root用户的口令。)
④删除普通用户(当前一定要root用户): userdel -r user

su 和 su - 的区别

  • su只是切换了root身份(获得root的执行权限),但Shell环境(环境变量)仍然是普通用户的Shell;
  • su -连用户和Shell环境一起切换成root身份了。(获得了root的环境变量及执行权限)

→只有切换了Shell环境才不会出现PATH环境变量错误。

在这里插入图片描述
在这里插入图片描述

超级用户的命令提示符是“#”,普通用户的命令提示符是“$

⭐Linux 中的root权限比 Windows中root的权限高

对命令提权

语法:sudo < command >
功能:暂时的对一条命令进行提权

(目前我们用adduser新建的用户,没法执行这条指令,因为系统默认不信任(新建的用户不在/etc/sudoers里),除非未来将普通用户添加到系统的信任白名单(/etc/sudoers里)里)

权限的概念

什么叫做“权限”?一件事情是否允许被某个人做

①权限认证的是身份(权限和“人”有关)
②权限也和事物的属性有关(比如,我C盘里的某个.txt文件不能像面包一样被我吃了,因为它不具备这个属性)

超级用户:可以再linux系统下做任何事情,基本不受权限的约束
普通用户:受权限约束,可以在Linux下做有限的事情

Linux权限管理

在这里插入图片描述

任何一个人,不论是root还是普通用户,都有可能是拥有者、所属组、其他人

文件访问者的分类(人)

对于一个被创建出来的文件,总会有被访问的一天,在Linux下的访问者(身份)分为三类:拥有者、所属组、other

(注意Linux不会记录other是谁)
在这里插入图片描述

1️⃣拥有者u→user

文件和文件目录的所有者:这个文件/文件目录是拥有者的,

2️⃣其他人o→others

外界的访问者,除了拥有者和所属组,其余的都是“others”

3️⃣所属组group

文件和文件目录的所有者所在的组的用户

我们需要组内协同,又不想让other看到

在这里插入图片描述
如上图所示

第一个字符表示文件类型
其余的字符从左到右每三个一组,分别代表拥有者权限所属组权限other权限,且每个位置的含义是确定的,(r是读权限,w是写权限,x是可执行权限),如果没有对应权限,要将rwx替换成-

我们用来学习租的云服务器大部分都是自己在用,所以我们既是拥有者也是所属组, 当我们一某一个身份去访问某一个文件时, 会自动匹配是拥有者和所属组,若都不是那么就是other
注意❗:如果某个人同时是拥有者和所属组,则匹配拥有者的权限而不是所属组的权限,如下图
在这里插入图片描述

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

文件

文件属性一定要包含:是否可读,是否可写,是否可执行

在这里插入图片描述

文件类型

Windows中,文件的类型是通过文件后缀来区分的(比如:.exe/ .mp4/ .txt等等)

而Linux系统中,不以文件名后缀区分文件类型,而是通过ll指令显示的第一个字符区分文件类型的,文件名后缀没有直接的意义(但是不代表它不用这个后缀)如何看待后缀?——看用户需求

-:普通文件(文本,源代码,可执行程序,库基本都属于普通文件)
d:目录文件(目录,directory → d)
b:块设备文件(块,block → b。一般的磁盘文件(例如硬盘、光驱等)都是块设备文件)
c:字符设备文件(字符,character → c。键盘,显示器文件等)
p:管道文件(管道,pipe → p。用来进行通信的文件)

(上面这些最为常见,当然还有其他类型的文件,如l:软链接(类似Windows的快捷方式)、s:套接口文件 等)

示例:

块设备文件
在这里插入图片描述
字符设备文件
在这里插入图片描述
管道文件
在这里插入图片描述

文件的基本权限属性

r:Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w:Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行x:execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- ':对应权限位置,相当于占位符号,表示不具有该项权限

文件权限值的表示方法

字符表示方法

Linux表示说明
r - -只读
- w -只写
- - x仅可执行
r w -可读可写
r - x可读可执行
- w x可写可执行
r w x可读可写可执行
- - -无权限

8进制数值表示方法

字符表示法中的每一个字符所在位置所表示的结果只有两种可能,要么为对应权限,要么为-,我们把有对应权限的记作1,没有的记作0 → 因此我们可以将这三个字符换为三个二进制位,再换为八进制,如下:

权限符号(读写执行)对应二进制八进制
r - -1004
- w -0102
- - x0011
r w -1106
r - x1015
- w x0113
r w x1117
- - -0000

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

能更改文件权限的人只能是:
①文件的拥有者
②root

chmod

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

常用选项:

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

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

chmod命令权限值的格式
① 用户表示符+/-/=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

初始:
在这里插入图片描述
将u,g,o设置成无权限,-
在这里插入图片描述
给u可读可写可执行权限+
在这里插入图片描述
给g可读可写可执行权限+
让g只有可读可写权限=
在这里插入图片描述
给所有人的权限设置成可读可写可执行
在这里插入图片描述

②三位8进制数字

相当于直接给权限赋值
例如chmod 777 test.c,相当于chmod u=rwx,g=rwx,o=rwx test.c
chmod 664 test.c,相当于chmod u=rw-,g=rw-,o=r-- test.c
chmod 775 empty,相当于chmod u=rwx,g=rwx,o=r-x empty
在这里插入图片描述

chown

语法:chown [参数] 用户名 文件名
功能:修改文件的拥有者
注意:给别人文件需要征得别人同意,但是root不需要征得别人同意
常用选项:
-R 递归修改文件或目录的所属组

在这里插入图片描述

chgrp

语法:chgrp [参数] 用户组名 文件名
功能:修改文件或目录的所属组

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

umask

权限掩码:凡是在umask中出现的权限,不会在最终的文件权限中出现!

语法:umask 权限值
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777

但实际上我们创建的文件和目录,看到的权限往往不是上面这个值:
在这里插入图片描述
在这里插入图片描述

问题1:起始权限问题

新建普通文件默认权限=0666
新建目录文件默认权限=0777

为什么我们创建文件的默认权限是我们上面看到的这样???
为什么普通文件: 664
为什么目录文件: 775
原因就是创建文件或目录的时候还要受到umask的影响

已知掩码=0002(对应二进制是10)
在这里插入图片描述
看上去好像是减法——默认权限 - 掩码 = 文件创建好后实际的默认权限

但是对于root:
在这里插入图片描述

root下普通文件:
实际644(如上图)对应二进制:110100100
初始: 110110110
umask:000100010
假设是减法
最终应该为110010100,显然与实际110100100不符

root下目录文件:
实际755(如上图)对应二进制:111101101
初始: 111111111
umask:000100010
假设是减法
最终应该为111011101,显然与实际111101101不符

显然,不是简单的减法

实际创建的文件权限 = 起始权限 &( ~umask)
(先把umask按位取反,再和起始权限按位与)

再对照一开始讲的权限掩码的定义,是不是就更好理解了?

问题2:目录权限

对于目录文件:
① 可读权限(r),不影响进入(cd)这个目录,影响的是→是否允许我们(用ls等命令)查看指定目录下的文件内容
②可写权限(w),是否允许我们在当前目录下进行创建,更改,删除
③可执行权限(x):是否允许用户进入(cd)该目录

  1. 普通用户自己的家目录权限是 700,我在我的家目录创建的文件,别人都看不到
  2. 有时候,我们多个用户想进行文件数据的共享,因此我们所建立的共享文件,不能在任何一个人的家目录下
  3. 一个文件能否被删除,并不由文件本身决定,而是由这个文件所处的目录决定
  4. 如果我们去掉了共享目录的w权限,同时我们也就无法创建文件了,那共享目录,“共享”体现在哪里呢?显然,共享目录的w权限不能没有

⭐为什么普通文件起始是666?(没有x权限)普通文件不需要可执行,给不能执行的文件 可执行权限没意义,需要的话可以手动给它加上这个权限,毕竟可执行的普通文件是少数
⭐为什么目录文件起始是777?所有的目录都要cd进去,没有可执行权限就进不去

粘滞位

t粘滞位是给目录设置的(一般是共享目录)大家可以在目录中进行各自文件的增删查改,只有文件拥有者和root能删除这个文件,其他人一概不允许,t是一种特殊的x权限!

如下图的tmp目录, 该目录的拥有者和所属组都是root,且other其它人的权限都是没有限制的,也就是说任何人都可以在里头读写文件。唯一与其他目录的不同在于,可执行权限在这里是t (t是一种特殊的x权限)
在这里插入图片描述

当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由
①超级管理员root删除
②该目录的所有者删除(所有者有w权限时)
③该文件的所有者删除

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单片机stm32智能鱼缸

随着我国经济的快速发展而给人们带来了富足的生活&#xff0c;也有越来越多的人们开始养鱼&#xff0c;通过养各种鱼类来美化居住环境和缓解压力。但是在鱼类饲养过程中&#xff0c;常常由于鱼类对水质、水位及光照强度有着很高的要求&#xff0c;而人们也由于工作的方面而无法…

齐次方程是否有非零解,和它的系数矩阵行列式的关系

视频来源&#xff1a;https://www.bilibili.com/video/BV1vY4y1J7gd/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 4:22 有这么一句话&#xff0c;如下图 对于齐次方程&#xff0c;若系数矩阵的行列式为零&#xff0c;则方程…

vue-router钩子函数有哪些?都有哪些参数?

Vue.js是一款流行的JavaScript框架&#xff0c;它提供了大量的工具和特性&#xff0c;使得web前端开发更加高效和灵活。其中之一就是Vue-router&#xff0c;它是Vue.js官方路由插件&#xff0c;可以实现前端路由的管理和控制。在使用Vue-router时&#xff0c;我们可以利用钩子函…

VsCode指定插件安装目录

VsCode指定插件安装目录 VsCode安装的默认目录是在用户目录(%HomePath%)下的.vscode文件夹下的extensions目录下&#xff0c;随着安装插件越来越多会占用大量C盘空间。 指定VsCode的插件目录 Vscode安装目录&#xff1a; D:\Microsoft VS Code\Code.exeVscode插件安装目录&a…

Linux搭建JavaEE环境

Linux搭建JavaEE环境 需要在 Linux 下进行 JavaEE 的开发&#xff0c;我们需要安装如下软件 JDKtomcatmysqlidea 安装JDK 安装步骤 首先去官网下载jdk的linux版本 下载地址&#xff1a;https://www.oracle.com/cn/java/technologies/downloads/ 1) mkdir /opt/jdk 2) 通过 …

C语言二级易忘易错易混知识点(自用)

1.数组名不能自加。 因为数组名实际上是一个指针&#xff0c;指向数组的第一个元素的地址。数组名在编译器中被视为常量&#xff0c;它的值是固定的&#xff0c;不能改变。 要访问数组的不同元素&#xff0c;应该使用数组名加上偏移量的方式来访问。 2.共用体只有最后一次赋值…

计算机组成原理----计算机系统

目录 1.计算机的硬件和软件 2.硬件的发展 3.软件的发展 4.计算机硬件的基本组成 &#xff08;1&#xff09;早期冯诺依曼机的结构 &#xff08;2&#xff09;现代计算机的结构 5.各硬件的工作原理 &#xff08;1&#xff09;主存储器 &#xff08;2&#xff09;运算器…

前端|Day2:列表、表格、表单(黑马笔记)

Day2&#xff1a;列表、表格、表单 目录 Day2&#xff1a;列表、表格、表单一、列表1.无序列表2.有序列表3. 定义列表 二、表格1.基本使用2. 表格结构标签(了解)3.合并单元格 三、表单1.input 标签2.input 标签占位文本3.单选框4.上传文件5.多选框6.下拉菜单7.文本域8.label 标…

【论文精读】MAE

摘要 将掩码重建任务从nlp引入到cv&#xff0c;提出非对称掩码自编码器。 框架 概述 如上图&#xff0c;本文提出掩码自编码器&#xff0c;即将给定原始信号的部分观测值的情况下重建原始信号&#xff0c;编码器将观察到的部分信号(没有掩码标记)映射到潜在表示&#xff0c;采…

电大考试哪个搜题软件好用?分享6个可以搜答案的软件 #经验分享#其他#微信

当今社会&#xff0c;技术的发展给我们带来了许多便利&#xff0c;包括了许多实用的学习工具。 1.三羊搜题 这是一个公众号 它支持文本搜索、扫码搜书、拍照搜索&#xff0c;不会的题目直接对准书书本&#xff0c;或手打文字搜索题目&#xff0c;找到的后的题目都有详细的解…

【JVM篇】什么是运行时数据区

文章目录 &#x1f354;什么是运行时数据区⭐程序计数器⭐栈&#x1f50e;Java虚拟机栈&#x1f388;栈帧的内容 &#x1f50e;本地方法栈 ⭐堆⭐方法区 &#x1f354;什么是运行时数据区 运行时数据区指的是jvm所管理的内存区域&#xff0c;其中分为两大类 线程共享&#xf…

w29pikachu-ssrf实例

实验环境 php&#xff1a;7.3.4nts apache&#xff1a;2.4.39 浏览器&#xff1a;谷歌实验步骤 ssrf&#xff08;curl&#xff09; 打开ssrf(curl) 点击文字&#xff0c;跳转404页面&#xff0c;从反馈信息来看是找不到对应的页面。 查看源码&#xff0c;发现有个RD变量影…

sentinel的资源数据指标是如何采集

资源数据采集 之前的NodeSelectorSlot和ClusterBuilderSlot已经完成了对资源调用树的构建, 现在则是要对资源进行收集, 核心点就是这些资源数据是如何统计 LogSlot 作用: 记录异常请求日志, 用于故障排查 public class LogSlot extends AbstractLinkedProcessorSlot<Def…

使用 Docker 安装 Kibana 8.4.3

使用 Docker 安装 Kibana 8.4.3 一. 安装启动 Kibana 8.4.3二. 简单使用2.1 向 Elasticsearch 发送请求2.2 搜索2.3 整体页面 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 安装k…

十五、Object 类

文章目录 Object 类6.1 public Object()6.2 toString方法6.3 hashCode和equals(Object)6.4 getClass方法6.5 clone方法6.6 finalize方法 Object 类 本文为书籍《Java编程的逻辑》1和《剑指Java&#xff1a;核心原理与应用实践》2阅读笔记 java.lang.Object类是类层次结构的根…

医卫医学试题及答案,分享几个实用搜题和学习工具 #笔记#笔记#微信

收录了大量考试类型的题库&#xff0c;大到考公&#xff0c;小到知识竞赛&#xff0c;题库资源算是比较丰富的了。操作起来也不难&#xff0c;我们只需输入题目内容&#xff0c;即可快速搜索出答案&#xff0c;而且它在给出答案的同时还会附带解析。最重要的是&#xff0c;搜题…

软件工具安装遇到bug、报错不知道怎么解决?看这里!

前言 本文举例了几个常见的软件工具使用问题&#xff0c;文末会提供一些我自己整理和使用的工具资料 。 "在追逐零 Bug 的路上&#xff0c;我们不断学习、改进&#xff0c;更加坚定自己的技术信念。让我们相信&#xff0c;每一个 Bug 都是我们成长的机会。" 一、VM…

09MARL深度强化学习policy gradient

文章目录 前言1、Multi-Agent Policy Gradient Theorem2、Centralised State-Value Critics2、Centralised Action-Value Critics 前言 Independent learning算法当中每个智能体看待其他智能体为环境的一部分&#xff0c;加剧了环境非平稳性&#xff0c;而CTDE框架的算法能够降…

防火墙——计算机网络

前述基于密码的安全机制不能有效解决以下安全问题&#xff1a; 用户入侵&#xff1a; 利用系统漏洞进行未授权登录&#xff1b; 授权用户非法获取更高级别权限等。 软件入侵&#xff1a; 通过网络传播病毒、蠕虫和特洛伊木马。 拒绝服务攻击等。 解决方法&#xff1a; 防火墙&a…

Camera2 setRepeatingRequest源码分析

当createCaptureSession流程执行完成后&#xff0c;应用在回调方法onConfigured就可以获得创建的CameraCaptureSession&#xff0c;接下来就可以调用CameraCaptureSession#setRepeatingRequest来下发camera stream命令获取camera数据。在CameraCaptureSession#setRepeatingRequ…