【linux】对于权限的理解

权限

    • Linux权限的概念
      • 用户之间的切换
    • Linux权限管理
      • 文件权限
      • 操作文件的人
      • Linux文件默认权限的设置
        • 权限掩码
      • 所属组/其他删除拥有者创建的文件
      • 文件拥有者、所属组的修改
        • 修改文件拥有者
        • 修改文件所属组
        • 一次性修改拥有者和所属组
      • 目录的执行权限

在这里插入图片描述

Linux权限的概念

首先,我们在登录的时候可以超级用户(root)身份登录,也可以普通用户身份登录,超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。

root就相当于是游戏里的上帝,想干啥就干啥,干什么事情不需要经过他人同意。

用户之间的切换

想要从一个用户下切换为另一个用户就可以:su 用户名

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码。

如果密码输错就无法切换,输入密码的时候是不会显示的,和设置普通用户的密码一样。

从普通用户切到root下:
在这里插入图片描述

从root且到普通用户,不需要输入密码
在这里插入图片描述

如果你是从一个用户已经转入到另一个用户了,但是你想要再转回去的话,就不建议再用su了,因为这样会导致产生多个进程,通俗点来说就是开了好多个用户。
在这里插入图片描述
想要直接退回去的话可以直接输入exit 或者用快捷键 ctrl + d (这个不会显示成ctrl d)。在这里插入图片描述
这里可以看到有好多个进程,而且都是重复的,所以说想要回到原来的用户的话就直接 ctrl + d 就可以了。
在这里插入图片描述

理解权限:一件事是否允许被特定的人做。

权限 = 人 + 事物属性

Linux权限管理

文件权限

记一个东西:linux下一切皆文件。像普通文件,目录文件,块设备文件,链接文件,字符设备文件,管道文件等等都是文件。

而linux系统中怎么区分这些属性的呢?

首先linux系统中,不以文件后缀作为区分文件类型的方式。当我们用 ls -l(或ll) 展示文件信息时会在文件最前面看到一堆的字母和-。
在这里插入图片描述
这些字母和-有特定的意思。
在这里插入图片描述
那后面的rw-什么的代表什么?

先看下面的解释:
文件本身具有天然的权限属性:读® + 写(w) + 执行(x)。这三个属性限定该文件是否能够读取,是否能够写入,是否能够执行。

简单画个表格:
在这里插入图片描述
这里就讲一下目录文件的x:大家可以想象你自己再windows操作系统下,双击一个文件夹,会发生什么事情,就是进入了该文件夹,如果你双击了一款游戏,这款游戏就执行起来了,那么把双击游戏的执行类推到双击文件夹上,那么就可以看出,双击文件夹就是执行该文件夹,也就是进入了该文件夹,文件夹也就是目录。那么再类推到linux系统上,对于目录来说,x代表执行,那么是否有这个权力就代表你是否能够进入这个目录。

这样的话再看这张图就明白了:
在这里插入图片描述

但是为啥有三个?

操作文件的人

对于操作文件的人可以分为三类:拥有者(user),所属组(group),其他人(other)。

拥有者:对于一个文件来说,这个文件是被谁拥有的,这个拥有的人就是拥有者。

所属组:举个栗子,为了方便管理,如果我有一个小组,小组内有 20 个用户,而这 20 位用户对同一个文件的权限是一致的,那我是一位用户一位用户地分配权限方便,还是把 20 位用户加入一个组中,然后给这个组分配权限方便呢?不言而喻,一定是给一个用户组分配权限更加方便。

其他人就是除了拥有者和所属组之外的人了。

而对文件进行读、写、执行操作的是人,人具有是否被允许干某件事这个属性。这样组合起来就是权限。

在这里插入图片描述
字母的意思就是有,而 - 的意思就是没有
在这里插入图片描述

再往后面看,两个yjy分别代表的是该文件的拥有者所属组。除了拥有者和所属组就是其他用户,不需要再搞一个标志了。
在这里插入图片描述

再往后就是文件大小,创建时间和文件名了。

当然上面的hello.c文件不可能执行,所以默认就都没有执行的权限。
但是可以改权限:
在这里插入图片描述
上面的操作就是给u(user)添加上执行的权限。虽然文件变成绿色了,但是没什么用,因为hello.c无法执行。

同样的我们也可以给g和o赋权。
在这里插入图片描述
也可以剥去权力:
在这里插入图片描述
还可以统一赋权和去权。
在这里插入图片描述
在这里插入图片描述
每个用户对文件权限位置是确定的,而且是两态的(要么有权,要么无权)。
我们可以用1来表示有权,用0来表示无权。
举个栗子:rw- 就是 110。
这样的话我们就可以用一种新的修改权限的方式:三位8进制数字。

在这里插入图片描述

八进制数 777 对应到二进制下就是 111 111 111,那么就代表所有的权限都有了。

在这里插入图片描述
八进制数 000 对应二进制就是 000 000 000,就是都没有。
在这里插入图片描述
八进制数 666 转换成二进制数就是 110 110 110,就是读写有,执行没有。

就不再多举例子了,都一个意思,数不一样,对应权限不一样。

Linux文件默认权限的设置

为什么创建文件会有默认的权限?

权限掩码

先不说概念,先看看长啥样:
umask这个指令可以看到权限掩码是多少。
在这里插入图片描述
第一个零意思是说这个数是八进制数,去掉它,就剩002了,八进制的002对应二进制就是000 000 010,这就是权限掩码,有什么用?

还是八进制,这里给出一个非官方的概念,起始权限。

普通文件的起始权限是666,对应二进制就是110 110 110;
目录文件的起始权限是777,对应二进制就是111 111 111。

凡是权限掩码中出现1的位置,对应到起始权限中的位置处如果为1,就变为0;如果为0,就不变。

那么默认的权限掩码都是0002,也就是000 000 010,这里去掉普通文件的那个1,就变成了 110 110 100,就是664,对应到字母就是 rw- rw- r–;去掉目录文件里的那个1,就变成了111 111 101,就是775,对应到字母就是 rwx rwx r-x。

那用二进制怎么算呢?
先对权限掩码(mask)取反,得到(~mask),然后再将这个值和起始权限与一下。那么 文件的默认权限 = 起始权限 & (~mask)

看图:
在这里插入图片描述
新创建的普通文件的权限和目录文件的权限和上面推出来的是一模一样的。

权限掩码是可以修改的,但是极其不建议,因为这些默认的权限是他人通过经验总结出来的,若修改,未必有人家设计的好,但是硬要修改的话也可以,umask 后面跟上八进制数就行,但是这样修改之在本次对话框能有效,也就是本次登录推出之后就变回原来的值了,如果想永久修改就需要搞配置文件,但还是建议不要永久修改,万一再想改回默认状态但是你忘了默认的值,那就恶心了。

所属组/其他删除拥有者创建的文件

在这里插入图片描述
这样以其他人的身份删除不属于这个人的文件,这样的操作,对于拥有者来说非常的危险,因为当这个文件比较重要时,如果被其他人删除了,那都不知道这个人是谁,就出大问题了。怎样解决呢?

若目录本身对other有w权限,other可以删掉任何目录下的文件;
若目录本身对other没有w权限,则other不可以删掉任何文件。

但是如果我们想要other可以再特定目录下创建文件并写入,但是不想让任何人删除掉自己的文件,怎么做?

这时候要引出一个新概念,叫粘滞位(只对目录文件有效),一般是限制other权限的。

设置方法:chmod o+t dir

在这里插入图片描述
设置好之后,other就无法删除文件了,但是可以创建文件。

在这里插入图片描述
将目录的other赋予w属性。
在这里插入图片描述
以other在该目录下创建文件,可以。
在这里插入图片描述
对于设置了粘滞位的目录,在该目录下,只能文件拥有者或root可以删文件,其他人不能删(所属组也不能)。

在这里插入图片描述

有时,用户多的情况下,或系统会有很多临时数据,所有临时文件放在系统的/tmp下,这时就需要把所有权限放开,但是只想让文件拥有者自己删除文件,就需要设置粘滞位。

若想去除粘滞位: chmod o-t filename
在这里插入图片描述

文件拥有者、所属组的修改

下面的这两个操作需要以root的身份去做,不然都是不允许的。
你把一个东西交给别人需要经过别人的允许。但是如果你是上帝视角,把东西给别人,别人什么话也不能说,不服也得憋着。
所以要么切换到root,要么sudo 行为。

修改文件拥有者

普通用户不允许:在这里插入图片描述

法一:sudo
在这里插入图片描述

法二:切换到root
在这里插入图片描述

修改文件所属组

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

但是如果文件拥有者是你,那么你可以直接将所属组改为你自己。
在这里插入图片描述

一次性修改拥有者和所属组

在这里插入图片描述

目录的执行权限

最后要再强调下这个,目录的执行权限决定的是:是否能够进入该目录,这个我开头也细讲了,这里就不多说为什么了。

当o对目录没有了x,会发生什么?
在这里插入图片描述

无x有r
在这里插入图片描述
可以看到文件名,但是看不到文件的详细信息。
在这里插入图片描述

无x有w
想往进写文件不行
在这里插入图片描述
想删掉里面的文件也不行。
在这里插入图片描述

如果想编写目录下的文件时,会保存不了,保存了就无法退出,不保存才能退出。在这里插入图片描述

到此结束。。

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

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

相关文章

电脑怎么远程控制另一台电脑

要从一台电脑远程控制另一台电脑,您可以使用远程桌面软件。 以下是远程控制另一台电脑的步骤: 一、在两台电脑上安装远程桌面软件 有多种远程桌面软件可用,例如 Splashtop、微软远程桌面。 在远程电脑和本地电脑上分别安装软件。访问各自软…

【产品经理】系统上线自查清单

产品上线之前的准备工作,看起来简单,实际做起来是非常繁杂的,如果没有尽早考虑和准备,可能会手忙脚乱甚至导致产品延迟上线。 产品上线前的准备工作听起来简单,但实际做起来非常繁杂。除了要考虑用户需求、商业需求外&…

vue项目 解决el-table自适应高度,vue页面不显示多条滚动条,超出的部分让el-table内部出现滚动条(推荐使用第二种解决方案)

一、需求 后台管理系统:最常见的页面都是由—>左侧菜单、头部tabView页签、主体数据渲染页面(AppMain);而一般AppMain页面又分为: 搜索区域、table数据(分页),可能也会存在底部&a…

局域网 - 高速以太网(百兆、千兆、万兆)

文章目录 1 概述1.1 802.3 物理层规范1.2 以太网标准中后缀 -T、-F、-X 含义 2 分类2.1 快速以太网(802.3μ、百兆)2.2 千兆以太网(802.3z、802.3ab)2.3 万兆以太网(802.3ae) 3 扩展3.1 网工软考真题 1 概述…

Docker 部署 MySQL 一主多从

主从复制的原理: 1、主库: 创建一个有权访问binlog日志的从库账号,配置需要主从复制的库 有写操作时,可以将写操作或者写操作之后的数据记录到日志文件中(binlog) 通过一个线程通知需要同步数据…

设计模式:UML中的类图(6种关系)

一.UML图介绍 统一建模语言是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 二.类图…

太阳的G2

我已经忘记是怎么喜欢上保罗的 入职腾讯的第一天,同事看到我的英文名cris,就笃信我应该是保罗的球迷。 是的,我是保罗的球迷「当然,不只是保罗的球迷」。 14-15赛季,保罗在的快船跟马刺鏖战7场,硬是在第7场…

4.24~25(总结)

第一周任务 - Virtual Judge 分析:这道题开始想错了,所以错了一次。后来又仔细读了一遍题,才发现,要是最长的那个排序子数组,所以第二次就做出来了,它其实应该分为两大块,第一块找左边的起点&a…

能源管理系统在电子厂房中的应用

摘要:以能耗管理系统在工业厂房的应用为例,介绍了系统架构及功能。重点分析能耗管理系统在工业厂房实施过程中遇到的难点,并对系统采集的数据进行分析,提出了相应的节能措施,帮助该业厂房达到节约能耗和运行费用的目的…

【Daily Share】没有域名怎么破?手把手教你如何通过hosts配置域名(假域名)

目录 ❌前言📄hosts文件🦉DNS解析步骤👌配置伪域名第一步 修改本机hosts配置第二步 配置服务器nginx 🔃流程图 ❌前言 ip记不住??? 域名不想买??? 每次当我…

【Linux】Linux开发工具

Linux开发工具 前言Linux编辑器 --- vimvim长啥样vim的基本概念vim的配置 Linux编译器 --- gcc/g编译和链接预处理编译汇编链接 细🔒链接静态库和动态库 Linux调试器 --- gdbLinux项目自动化构建工具 --- make/Makefile依赖关系和依赖方法 上方工具的简单示例 前言 …

0401概述-最短路径-加权有向图-数据结构和算法(Java)

文章目录 1 最短路径2 最短路径的性质3 加权有向图的数据结构3.1 加权有向边3.2 加权有向图 4 最短路径4.1 最短路径API4.2 最短路径的数据结构4.3 边的松弛4.4 顶点的松弛 结语 1 最短路径 如图1-1所示,一幅加权有向图和其中的一条最短路径: 定义&…

LeetCode 27.移除元素

文章目录 💡题目分析💡解题思路🚩思路1:暴力求解 --- 遍历🔔接口源码:🚩思路2:空间换时间🔔接口源码:🚩思路3:双指针(快慢指针)🔔接口…

【C++】string类的简单模拟实现

目录 string类初识 string模拟实现 string类成员变量 构造函数 拷贝构造 赋值运算符重载 析构函数 深浅拷贝问题 string类初识 由于C语言中的字符串不太符合OOP(面向对象编程)的思想,而且其底层空间需要用户自己管理,经常有访问越界的情况出现。…

解决方案:Zotero实现参考文献中英文混排,将英文文献中的“等”转成“et al.”

Zotero 是一款非常实用且易于使用的参考文献管理工具,可帮助用户收集、整理和引用各种类型的文献,包括图书、期刊文章、网页等。在学术写作中起着重要作用。 但是其在中文世界中,运行起来偶尔会出现问题,这里记录一个问题及其解决…

chmod 命令 (chmod 0660)

chmod的作用: 用于设置文件所有者和文件关联组的命令,就是控制用户的权限命令 注意事项: chown 需要超级用户 root 的权限才能执行此命令。 自己常用chmod 命令是 chmod 777 * 给所有文件权限 chmod 777 文件名 给单独文件权限 这个777 是怎么来的, 或者chmod 0660 这…

java 获取时间的方法

Java的时间是通过字节码指令来控制的,所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时, JVM会产生一些状态,所以在执行 JVM指令时, JVM也会产生一些状态。 我们在执行 java程序时,主要是…

kafka延时队列内部应用简介

kafka延时队列_悠然予夏的博客-CSDN博客 两个follower副本都已经拉取到了leader副本的最新位置,此时又向leader副本发送拉取请求,而leader副本并没有新的消息写入,那么此时leader副本该如何处理呢?可以直接返回空的拉取结…

IEEE14节点系统在如短路分析,潮流研究,互连电网中的研究(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

easyrecovery16最新数据恢复软件密钥使用方法教程

easyrecovery是一款专业的数据恢复软件,其最新版本为easyrecovery2023将于2022年底发布。总之,easyrecovery是一款功能齐全、性能稳定的专业数据恢复软件,无论删除文件、格式化分区或磁盘故障,它都可以提供最高的恢复成功率。值得个人用户选用。此版本在功能和性能上有较大提升…