当前位置: 首页 > news >正文

Linux权限的基本理解

一:🚩Linux中的用户

1.1🥦用户的分类

🌟在Linux中用户可以被分为两种用户:

  • 超级用户(root):可以在Linux系统中做各种事情而不被约束
  • 普通用户:只能做有限的事情被权限约束

在实际操作时超级用户的命令提示符为'#',普通用户的命令提示符为'$',可以根据命令提示符来区分当前的用户

1.2:🥦用户的切换

如何在Linux系统中切换用户?

        1.普通用户切换root用户

       方法一:  命令: su

        方法二: 命令: su -

[注意]:

两个命令的作用都是将用户变为root用户,但是su是直接把用户变为root,当前路径不会发生改变,而su - 有一条login加载的信息,相当于输入密码重新登陆,会把当前路径修改为/root

        2.root用户变为普通用户

        直接 su+用户名即可,不需要输入密码

二:🚩什么是权限

        权限就是通过一部分条件,可以拦截住一部分人,给另一部分人权力访问资源,并且权限不仅和人有关,还和事务的属性有关,比如我们不能在视频软件上打游戏,所以权限和人与事务的属性有关.

2.1 🥦文件类型及其权限管理

⛲文件类型:

在windows系统中,区分文件类型依靠的是文件的后缀名

在Linux系统中,文件不以后缀名区分,当我们用 ll指令查看文件详细信息时,第一个字符就代表文件的类型

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

⛲文件权限:

在Linux系统中,访问文件存在三种角色:

  • 拥有者
  • 所属组
  • 其他

在文件属性最前面一共有十个字符,第一个为文件的类型,而后九个三三为一组,分别对应文件拥有者、所属组、其他人的权限

第一个字符:是否具有读权限,如果是就是r,否就为-

第二个字符:是否具有写权限,如果是就是w,否就为-

第三个字符:是否具有可执行权限,如果是就是x,否就为-

了解了上述信息就可以对文件的权限进行管理了


💬如何修改文件的权限?

目前test.txt文件的权限如图所示

方法一: 给角色加减权限(直接)

chmod指令
功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项: r - 递归修改目录文件的权限

ps.文件的权限只能由拥有者和root修改

例如: 去掉拥有者的读取权限

例如:去掉拥有者的写权限和所属组的读权限


补充:如果要同时去掉或者增加三个角色的某一权限或多个权限可以使用 a(代表all指所有角色)

除了上述方法还可以使用三位八进制数字的方法:

三个字符表示一个角色的权限,我们将有权限表示为1,无权限表示为0,例如rw-就为110用八进制表示为6, rwx就为111用八进制表示就为7

例如:取消所有角色的所有权限

例如:增加拥有者和所属组的读取权限,增加其他人的读权限

方法二:改变角色(间接)

chown指令
功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名
chgrp指令
功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -r  递归修改文件或目录的所属组

[注意]:只有root用户才能修改文件的拥有者和所属组

如图所示,当前test.txt文件的拥有者和所属组都为zyq

例如: 原来zyq有读和写这个文件的权限,将文件的拥有者和所属组都改为root,此时zyq在这个文件就相当于other,只有r权限了,间接修改了用户的权限

也可以同时修改文件的拥有者和所属组(用冒号相隔)

2.2 🥦目录权限

⛲目录权限理解

可读权限(r): 用户是否可以查看目录的内容

可写权限(w):用户是否有在指定目录下有创建、修改、删除文件的权限

可执行权限(x):若无可执行权限,用户无法进入目录

我们操作的用户为dir目录的拥有者

当去掉拥有者对目录的读权限时,我们不能看目录的内容,但是可以进入到目录内

当去掉拥有者对目录的写权限,可以进入到目录内但是不能在目录里新建文件

当去掉拥有者对目录的可执行权限,我们都进不去这个目录

⛲umask

当创建目录和文件时,他们好像有自己默认的权限

其实,新建文件夹默认权限 =0666 ,新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。
umask是Linux中默认的权限掩码,凡是在umask中出现的权限,在文件中都要被过滤掉。
证明:
我们先查看当前环境下的umask值为多少
新建目录默认权限为0777,即111 111 111
umask为002,即000 000 010
先将umask按位取反:111 111 101
再按位与111 111 111
得 111 111 101 即  rwxrwxr-x  与上述结果相同

⛲目录中文件的删除问题

当我们以普通用户在一个指定目录下创建一个普通文件,root用户不是拥有者和所属组此时相当于other的角色,他此时没有写的权限,但是他却可以删掉普通用户创建的文件,这不难理解,因为root是超级用户

反过来,我们用root用户在指定目录下创建一个文件,普通用户不是拥有者和所属组此时相当于other的角色,没有写的权限,但是普通用户也能删掉root用户创建的文件,这是为什么呢?

在目录下一个用户删除目标文件,和目标文件没有关系,只要该用户对该目录有w权限就可以删除该目录下的任何文件

普通用户此时相当于other但是其对此目录有写的权限,所以可以删除目录里的文件,与目录里的文件无关

相关文章:

Linux权限的基本理解

一:🚩Linux中的用户 1.1🥦用户的分类 🌟在Linux中用户可以被分为两种用户: 超级用户(root):可以在Linux系统中做各种事情而不被约束普通用户:只能做有限的事情被权限约束 在实际操作时超级用户的命令提示符为#,普通用户的命令提示符为$,可…...

AI人工智能大模型讲师叶梓《基于人工智能的内容生成(AIGC)理论与实践》培训提纲

【课程简介】 本课程介绍了chatGPT相关模型的具体案例实践,通过实操更好的掌握chatGPT的概念与应用场景,可以作为chatGPT领域学习者的入门到进阶级课程。 【课程时长】 1天(6小时/天) 【课程对象】 理工科本科及以上&#xff0…...

nat地址转换

原理 将内网地址转换成外网地址 方式 掌握动态NAT的配置方法 掌握Easy IP的配置方法 掌握NAT Server的配置方法 实验 r1 r2 是内网 ar1 ip地址 ip add ip地址 掩码 ip route-static 0.0.0.0 0 192.168.1.254 默认网关 吓一跳网关 相等于设置了网关 ar2 …...

第12课 循环综合举例

文章目录 前言一、循环综合举例1. 质数判断问题2. 百人百砖问题3. 猴子吃桃问题4. 质因数分解问题5. 数字统计问题。 二、课后练习2. 末尾3位数问题3. 求自然常数e4. 数据统计问题5. 买苹果问题。6. 找5的倍数问题。 总结 前言 本课使用循环结构,介绍了以下问题的解…...

Tuxera NTFS for Mac2024免费Mac读写软件下载教程

在日常生活中,我们使用Mac时经常会遇到外部设备不能正常使用的情况,如:U盘、硬盘、软盘等等一系列存储设备,而这些设备的格式大多为NTFS,Mac系统对NTFS格式分区存在一定的兼容性问题,不能正常读写。 那么什…...

C++ 具名要求

此页面中列出的具名要求,是 C 标准的规范性文本中使用的具名要求,用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前,确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…...

大创项目推荐 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 🔥 优质竞赛项目系列,今天…...

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括: 2.函数重载的好处包括: 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…...

车载电子电器架构 —— 电子电气系统开发角色定义

车载电子电器架构 —— 电子电气系统开发角色定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 注:本文12000字,深度思考者进!!! 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的…...

最新Redis7哨兵模式(保姆级教学)

一定一定要把云服务器的防火墙打开一定要!!!!!!!!!否则不成功!!!!!!!!&…...

Redis原理及常见问题

高性能之道 单线程模型基于内存操作epoll多路复用模型高效的数据存储结构redis的单线程指的是数据处理使用的单线程,实际上它主要包含 IO线程:处理网络消息收发主线程:处理数据读写操作,包括事务、Lua脚本等持久化线程:执行RDB或AOF时,使用持久化线程处理,避免主线程的阻…...

nvm 的安装及使用 (Node版本管理器)

目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management ,专门针对 node 版本进行管理的工具,通过它可以安装和切换不同版本的…...

【Yii2】数据库查询方法总结

目录 1.查找单个记录: 2.查找多个记录: 3.条件查询: 4.关联查询: 假设User模型有一个名为orders的多对一关联关系。 5.排序和分组: 6.数据操作: 7.事务处理: 8.命令查询: 9…...

区块链的三难困境是什么,如何解决?

人们需要保持社交、工作和睡眠之间的平衡,并且努力和谐相处。同样的概念也反映在区块链的三难困境中。 区块链三难困境是一个术语,指的是现有区块链的局限性:可扩展性、安全性和去中心化。这是一个存在了几十年的设计问题,其问题的…...

oCPC实践录 | oCPM的秘密

前言 笔者从这几方面介绍oCPM,并一一分析平台侧宣称的oCPM相比oCPC的优势,并解开其中的秘密。 1)什么是oCPM? 2)oCPC与oCPM的异同 3)平台宣称oCPM的优势 4)oCPM真正的秘密 5)oCPM下的点击率与…...

【Linux Shell学习笔记】Linux Shell的位置参数与函数

一、位置参数 位置参数,也被称之为位置变量,通过位置参数,可以在执行程序的时候,向程序传递数据 1.1 shell接收参数的方法 1.2 向shell传递参数的方法 二、函数 2.1 函数基础 2.1.1 函数简介 函数本质上就是一个代码块&#xf…...

缓存cache和缓冲buffer的区别

近期被这两个词汇困扰了,感觉有本质的区别,搜了一些资料,整理如下 计算机内部的几个部分图如下 缓存(cache) https://baike.baidu.com/item/%E7%BC%93%E5%AD%98 提到缓存(cache),就…...

Vue常见面试问答

vue响应式数据 vue2 Vue2 的对象数据是通过 Object.defineProperty 对每个属性进行监听,当对属性进行读取的时候,就会触发 getter,对属性进行设置的时候,就会触发 setter。 /** * 这里的函数 defineReactive 用来对 Object.def…...

Eureka相关面试题及答案

1、什么是Eureka? Eureka是一个由Netflix开发的服务发现(Service Discovery)工具,它是Spring Cloud生态系统中的一个关键组件。服务发现是微服务架构中的一个重要概念,它允许服务实例在启动时注册自己,以便…...

想要学会JVM调优,先掌握JVM内存模型和JVM运行原理

1、前言 今天将和你一起探讨Java虚拟机(JVM)的性能调优。 JVM算是面试中的高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的 性能调优做过? 2、为什么 JVM 在 Java 中如此重要 首…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...