Linux权限概念
目录
Linux权限的概念
什么是权限
如何去操作权限
设置文件所属角色
设置文件属性
umask
粘滞位
Linux权限的概念
首先我们要了解到,在linux下有两种用户:超级用户(root)和普通用户。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”!

见名知其意,超级用户在linux下做的任何事情不会受到限制。而普通用户,在linux下可做的事情则是有限的。当你需要切换用户时,需要用到su [用户名]来切换用户!

这里注意一下,当你输入密码的时候是看不到的,正常输入即可。上述的用户切换过程也体现了超级用户的“特权”,就好比“神”一样的存在!但是,我们大多数人在生活中都是平凡的小角色,在未来的工作当中使用linux也是普通用户,这个时候我们可以处理的问题就是有限的,难道每当我们遇到需要root身份才能执行的命令就去找领导要root账号吗?可不可以不切换用户,让普通用户以root的身份执行相应的命令。答案是可以的,面对上述场景,只需用sudo [命令]来进行短暂的提权即可:

权限被拒绝的原因:
使用sudo 提权:

输入普通用户的密码为什么就可以提权到root身份进行一些命令操作了呢,这不存在风险吗?其实这个机制存在的价值就是给受信任的用户减少执行障碍,提供最大的便利!就好比你把这个用户写进了“白名单”只要他忠心于root就可以给他最大的便捷。反之不信任的用户没有这一特权!

sodoers文件就相当于领导的小本本,把当前用户写到sodoers文件中就能得到系统的信任,这里暂时不做处理,zxy没有添加到sudoers中,所以不能完成提权的操作。在后面的学习中在探索如何将用户写到“白名单”中。
什么是权限
简单来说,权限限制的就是一件事情是否允许被谁做,权限约束的是一个人或者是某些群体。我们在生活中都扮演着不同角色,谁就好比学生这个身份,因为这个身份才有了进入学校学习的权利,并不因为我是张三就能进入学校!做就好比我想在学校里读书或者唱KTV,前者读书是学校提供的“业务”,而后者唱KTV是学校没有的属性。在linux下的文件访问中,访问者的身份可能不同,文件的类型和访问权限也可能不同:

角色:
●拥有者:文件和文件目录的所有者!
●所属组:和拥有者同在一个小组的用户!
●其他人:其它用户!

如上图所示,张三家和李四家就是两个用户组,张三和李四分别有一个文件,他们对于文件而言就是拥有者,他们组内的用户属于用户组中的一份子,而李大对于张三的文件而言就是其他人(others),张三家的人对于李四的文件而言也是其他人(others)。这里还要提一下root,上面说过它不受任何限制,所以root可以去它任何想去的地方。
文件属性:

●文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
在windows中我们经常通过文件的后缀来判断文件的类型。在linux中与之不同,文件的类型由文件属性的第一列确定,与文件后缀无关,所以在linux下创建文件时可以不用加后缀,如果你想将后缀作为符号给用户一个提示也是一个很好的习惯,但这时要注意你写的后缀也是文件名中的一部分。
为了验证后缀和文件类型有无关系你可能会想到这样的反例:

上述示例对后缀有要求的原因是gcc工具对文件后缀的要求,和我们谈论的linux下文件类型和后缀无关并不冲突。
●基本权限
r读权限: Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w写权限: Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
x可执行权限: execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-无权限:没有权限!
字符表示文件权限:

8进制数值表示:

如何去操作权限
设置文件所属角色
chown:修改文件或目录的拥有者
chgrp:修改文件或目录的所属组
下图中的操作都是以root用户进行操作的:

用普通用户修改文件的拥有者和所属组不被允许!
设置文件属性
chmod:设置文件的访问权限
●ugoa +- rwx方案:用户表示符+、-权限字符
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

●八进制方案
umask
当我们创建一个文件或者目录的时候,它们都有默认的权限:

这些默认权限是怎么来的,真相只有一个:系统会默认配置好umask权限掩码,凡是在umask中出现的权限,需要在起始权限中去掉。linux中规定,目录的起始权限是777,文件的起始权限是666,超级用户默认掩码是022,普通用户默认掩码是002!

最终权限的计算方法:最终权限 = 起始权限&(~umask)

粘滞位
可执行权限: 如果目录没有可执行权限, 则无法进入到目录中
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
基于上述关于目录权限的描述,产生了这样的问题:只要用户拥有了目录的写权限,就可以对文件进行删除操作,如果有一天用户A不小心删除了用户B写的“机密文件”,就会带来很大的问题!这个机制好像不太合理。
为了解决上述问题,linux引进了粘滞位的概念,当一个目录被设置粘滞位(chmod +t),则目录下的文件只能由超级管理员、文件或者目录的所有者对其进行删除!

相关文章:
Linux权限概念
目录 Linux权限的概念 什么是权限 如何去操作权限 设置文件所属角色 设置文件属性 umask 粘滞位 Linux权限的概念 首先我们要了解到,在linux下有两种用户:超级用户(root)和普通用户。超级用户的命令提示符是“#”,普通用户的命令提示…...
备战金三银四,这些无数测试前辈们踩过的坑,在面试中,一定要注意这些
你觉得软件测试师这个职位怎么样?大多数人可能会给出答案:“测试?啊,没有技术含量。无非是看需求、业务手册、设计文档,然后点击功能是否实现。问题是测试中的部署和安装是否存在兼容性问题。” 是的,不可否认&#x…...
注解(加与不加的区别)
起因: 在看到这个文章时,对于注解的作用半知半解,由此,写了个例子,验证注解作用 以Override举例 新建一个父类,取名为textone(类名首字母应该大写) 写一个方法: 再新建一个类,继承…...
小众免费的短视频素材库
推荐5个小众但好用的视频素材网站,免费可商用,视频剪辑、自媒体必备~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 菜鸟图库网素材非常丰富,网站主要还是以设计素材为主,高清视频素材也很多,像风…...
docker-compose安装SonarQube
前言SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。一、docker-compose配置#v…...
《数字经济全景白皮书》金融篇:五十弦翻塞外声,金融热点领域如何实现增长?
易观分析:《数字经济全景白皮书》浓缩了易观分析对于数字经济各行业经验和数据的积累,并结合数字时代企业的实际业务和未来面临的挑战,以及数字技术的创新突破等因素,最终从数字经济发展大势以及各领域案例入手,帮助企…...
微服务门神-Gateway与Sentinel的集成
目录 引言 概述 集成Sentinel 限流维度 网关集成 Route维度 API分组 精准匹配 前缀匹配 正则匹配 自定义限流返回格式 转视频版 引言 书接上篇:微服务门神-Gateway过滤器Filter,讲完了解Gateway过滤器之后,接下来看下Gateway与…...
查找的基本概念
查找表是由同一类型的数据元素(或记录)构成的集合。根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或记录。关键字:用来标识一个数据元素(或记录)的某个数据项的值。查找算法的评价指标…...
安装v-router出错
一、场景 1、安装v-router npm i --save vue-router 2、报错: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: sph20.1.0 npm ERR! Found: vue2.7.14 npm ERR! node_modules/vue npm ERR! v…...
2023美赛C题:预测 Wordle 结果
以下内容全部来自本人人工翻译,仅供参考。 文章目录背景要求附件数据文件条目描述纽约时报网站上发布的Wordle指导方针词汇表参考文献服务背景 Wordle是目前纽约时报每天提供的一种受欢迎的谜题。玩家试图通过在六次或更少的机会内猜测一个五个字母的单词来解决谜题…...
minio public桶禁止在直接访问桶位置时列出所有文件url
minio的public桶因为没有限制,所以在直接访问到桶地址的时候会列出桶内所有文件的url,这样很不安全,如何禁止这个功能,可以使用三种方法 1、如果是新版的可以直接设置桶的Access Policy为自定义就好 编辑custom的Policyÿ…...
Python 元组简介
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:实例(Python 2.0)tup1 (physics, chemistry, 1997…...
python gui构造openai api可视化页面
背景:最近chatgpt很火,前几天也想注册体验一下,一顿操作之后,卡在该国家不支持。最后发现自己的代理开在香港,改在漂亮国就行了。虽然有chatgpt可以用,但是小平是自己封装了一个,我不能输。正好…...
服务网格领域的百花齐放,是否存在一个更优解?
作者 lingsamuel,API7.ai 云原生技术专家,Apache APISIX Committer。作者 林志煌,API7.ai 技术工程师,Apache APISIX contributor。 服务网格是一种技术架构,它用于管理微服务系统中各个服务之间的通信,旨…...
Zynq 裸机 PS + PL 双网口实现之 lwip 库文件修改
基于 xilinx vivado 2017.4 库文件 lwip141_v2_0 的修改: 添加对 PHY 芯片 ksz9031 的支持; 添加 SDK 中 LWIP 参数设置对话框 emio_options 选项; 添加 XPAR_GMII2RGMIICON_0N_ETH0_ADDR 和 XPAR_GMII2RGMIICON_0N_ETH1_ADDR 宏配置&#…...
金三银四丨黑蛋老师带你剖析-CTF岗
作者丨黑蛋二进制是个庞大的方向,对应着许许多多方向的岗位,除了之前说过的逆向岗位,漏洞岗位,病毒岗位,还有专门打CTF的岗位,CTF是网络安全领域的一种比赛。普遍来讲,大学生学习网络安全都会参…...
Linux find命令
哈喽,大家好,我是有勇气的牛排(全网同名)🐮 有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。 1 介绍 find命令用来查找置顶目录下的文件。任何位于参数…...
vue项目实现会议预约(包含某天的某个时间段和某月的某几天)
一、一天的时间段预约 会议预约有以下操作: 1.点击预约按钮,弹窗最近一周的预约时间点(半小时一个点),预约时间为5:00到24:00; 2.超过当前时间的时间点不允许再预约,已经预约的时间不允许再预约,…...
javacv桌面推送 通过推送和拉取udp组播视频流实现
ffmpeg udp 推流拉流命令单播推流E:/工具/ffmpeg/ffmpeg -f gdigrab -r 23 -i desktop -pkt_size 1316 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f h264 udp://192.168.1.20:5001拉流ffplay -f h264 udp://192.168.1.20:5001 -fflags nobuffer -nofind_strea…...
2022年直播电商成交额,更是达到了24816亿元的成交额
近年来移动网络覆盖率、网速提升,直播行业不在是陌生的行业,直播也诞生了繁多的领域,游戏直播、户外直播等,当然还有今天的主题“直播带货”。直播带货是线上销售模式的一种,由衷是为了更好的把商品展示给用户观看&…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
