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亿元的成交额
近年来移动网络覆盖率、网速提升,直播行业不在是陌生的行业,直播也诞生了繁多的领域,游戏直播、户外直播等,当然还有今天的主题“直播带货”。直播带货是线上销售模式的一种,由衷是为了更好的把商品展示给用户观看&…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
