Linux 入门:权限的认识和学习
目录
一.shell命令以及运行原理
二.Linux权限的概念
1.Linux下两种用户
cannot open directory '.': Permission denied 问题
2.Linux权限管理
1).是什么
2).为什么(权限=角色+目标权限属性)
3).文件访问者的分类(角色)
4).文件类型和访问权限(事物属性)
5).怎么做
(1)chmod (设置文件的访问权限)
(2)用户只能更改自己的文件权限
(3)没有权限系统会拒绝访问
(4)确定权限信息的时候,系统会先确定用户是谁?拥有者,所属组还是other
(5)root不受权限约束
(6)chown(修改文件的拥有者)
(7)umask(查看或修改文件掩码)
6).目录的权限
(1)粘滞位
三.关于权限的总结
一.shell命令以及运行原理
Linux严格意义上说的是⼀个操作系统,我们称之为“核心(kernel)“ ,但我们⼀般用户,不能直接使⽤kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
• 将使用者的命令翻译给核心(kernel)处理。
• 同时,将核心的处理结果翻译给使用者
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果再通过内核运行出结果,通过shell解析给用户
二.Linux权限的概念
1.Linux下两种用户
超级用户(root)、普通用户
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输⼊root用户的口令。
cannot open directory '.': Permission denied 问题
若切换用户出现 cannot open directory '.': Permission denied的情况
命令: su -l 用户名
若没有设置普通用户密码切换root账号设置一下
命令: passwd 用户名
2.Linux权限管理
1).是什么
权限本质是能或者不能做什么事
2).为什么(权限=角色+目标权限属性)
- 控制用户的行为,防止错误发生
- 权限首先限制的是角色
- 权限要求目标必须具备对应的属性(比如:我不能在LeetCode上看电影)
3).文件访问者的分类(角色)
• 文件和文件目录的所有者:u---User(中国平民 法律问题)
• 文件和文件目录的所有者所在的组的用户,所属组:g---Group(不多说)
• 其它用户other:o---Others (外国人)
4).文件类型和访问权限(事物属性)
文件类型:
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷⽅式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串⼝设备)
- s:套接口文件
基本权限:
- 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内⽂件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “-”表示不具有该项权限
5).怎么做
文件访问权限的相关设置方法
(1)chmod (设置文件的访问权限)
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
- R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式:
- 用户表⽰符+/-=权限字符
- + :向权限范围增加权限代号所表示的权限
- - :向权限范围取消权限代号所表示的权限
- = :向权限范围赋予权限代号所表示的权限
用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
(2)用户只能更改自己的文件权限
(3)没有权限系统会拒绝访问
(4)确定权限信息的时候,系统会先确定用户是谁?拥有者,所属组还是other
用户角色只确定一次,顺序是拥有者,所属组,other
(5)root不受权限约束
(6)chown(修改文件的拥有者)
功能:修改⽂件的拥有者
格式:chown [参数] 用户名 文件名
(7)umask(查看或修改文件掩码)
功能:
- 查看或修改文件掩码
- 新建文件夹默认权限=0666
- 新建目录默认权限=0777
- 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建⽂件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的⽂件权限是: mask &(~umask)
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
- 默认权限,有OS自主决定,无法在创建前进行修改----系统可配置,可以灵活满足需要的一种表现
- 特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码是可控的
6).目录的权限
可执行权限x,可读权限r,可写权限w
可执行权限x: 如果目录没有可权限, 则无法cd到目录中.
可读权限r: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限w: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
于是, 问题来了~~ 换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
这好像不太科学啊, 我张三创建的⼀个文件, 凭什么被你李四可以删掉?
一个文件是否能被删除,与文件本身无关,与文件所处的目录权限w有关
(1)粘滞位
为了解决这个不科学的问题, Linux引⼊了粘滞位的概念
任何一个人都能在共享目录下创建,但是不能让非拥有者删除
当⼀个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
- 超级管理员删除
- 该目录的所有者删除
该文件的所有者删除
三.关于权限的总结
- 目录的可执行权限是表示你可否在目录下执行命令。
- 如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目录, 即使目录仍然有 -r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
- 而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读权限
- 所以在目录下,即使可以执行 ls 命令,但仍然没有权限读出目录下的文档
相关文章:
Linux 入门:权限的认识和学习
目录 一.shell命令以及运行原理 二.Linux权限的概念 1.Linux下两种用户 cannot open directory .: Permission denied 问题 2.Linux权限管理 1).是什么 2).为什么(权限角色目标权限属性) 3).文件访问者的分类(角色) 4).文…...
多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性
引言 大型语言模型(LLMs)的出现极大地推动了自然语言处理领域的发展。为了使其在各种特定任务和动态环境中表现出色,微调技术至关重要。本节将深入探讨多任务学习(Multi-task Learning, MTL)和持续学习(Co…...
Cocos Creator Shader入门实战(四):预处理宏定义和Chunk
引擎: 3.8.5 您好,我是鹤九日! 回顾 学习Shader,前期是让人烦躁无味的,后期可能就是各种的逻辑让人抓耳挠腮。 一成不变的内容:遵循引擎设定的规则,理解引擎要求的规范。 这里,简单…...
[蓝桥杯 2023 省 B] 飞机降落
[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di 个单位时间,即它最早可以于 T i T_{i} Ti 时刻…...
STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现
STAR 分解🚀 在时序预测任务中,为了情绪化信号的各种成分,例如趋势信息季节信息等往往都需要对信号进行分解。目前熟知的分解方式有很多种,经验模态分解 EMD 变分模态分解 VMD ,还有 集合经验模态分解 EEMD,…...
matlab中如何集成使用python
在 MATLAB 中集成使用 Python 可以通过调用 Python 脚本或函数来实现。MATLAB 提供了 py 模块来直接调用 Python 代码。以下是一个简单的示例,展示如何在 MATLAB 中调用 Python 函数。 示例:在 MATLAB 中调用 Python 函数 1. 编写 Python 函数 首先&a…...
使用matlab求伴随矩阵
已知三阶方阵: 计算行列式det 计算逆矩阵inv 如何det不等于0,伴随矩阵 行列式det*逆矩阵inv >> A[1 0 0;1 1 -1;-2 0 3]A 1 0 01 1 -1-2 0 3>> det(A)ans 3>> >> A_invinv(A)A_inv 1.0000 …...
音视频处理的“瑞士军刀”与“积木”:FFmpeg 与 GStreamer 的深度揭秘
一、发展历史与生态演进对比 FFmpeg的成长轨迹 诞生背景:2000年由Fabrice Bellard创建,最初为解决视频编码标准化问题而生。早期版本仅支持MPEG-1编码,但凭借开源社区协作,迅速扩展为全格式编解码工具。技术扩张:2004年…...
Debezium日常分享系列之:Debezium 3.1.0.Beta1发布
Debezium日常分享系列之:Debezium 3.1.0.Beta1发布 新特性和改进Debezium 平台的首次发布Percona 的最小锁定新的 Oracle 源信息 SCN 和时间戳字段Vitess Epoch/零日期列解析的变化Vitess 二进制排序的 tiny、medium 和 long 文本列的变化CloudEvent traceparent 支…...
智能汽车图像及视频处理方案,支持视频智能剪辑能力
在智能科技日新月异的今天,汽车已不仅仅是代步工具,它们正逐步进化为集出行、娱乐、生活于一体的智能移动空间。在这场汽车行业的智能化变革中,美摄科技以其卓越的智能汽车图像及视频处理方案,引领了一场前所未有的视觉盛宴&#…...
《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》
承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客,涉及所用到的代码,本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名,主机名,路径…...
postgresql 高版本pgsql备份在低版本pgsql中恢复失败,报错:“unsupported version”
关键字 PostgreSQL、pg_restore、版本兼容性、数据库迁移、pg_dump、备份恢复、unsupported version in file header 背景环境 系统配置 环境类型操作系统PostgreSQL版本内存工具链测试环境Windows 111616GBNavicat/PgAdmin生产环境Windows Server 2012 R2128GBPgAdmin/命令…...
裸机开发-GPIO外设
重新开始学ZYNQ开发,学完上linux系统 基础知识:ZYNQ 的三种GPIO :MIO、EMIO、AXI - FPGA/ASIC技术 - 电子发烧友网 GPIO是ZYNQ PS端的一个IO外设,用于观测(input)和控制(output)器…...
STM32——独立看门狗(IWDG)
IWDG 简介 独立看门狗本质上是一个 定时器 ,这个定时器有一个输出端,可以输出复位信号。该定时器是一个 12 位的递减计数器 ,当计数器的值减到 0 的时候,就会产生一个复位信号。如果 在计 数没减到 0 之前,重置计…...
使用STM32CubeMX+DMA+空闲中断实现串口接收和发送数据(STM32G070CBT6)
1.STM32CubeMX配置 (1)配置SYS (2)配置RCC (3)配置串口,此处我用的是串口4,其他串口也是一样的 (4)配置DMA,将串口4的TX和RX添加到DMA中 &#…...
连续出现的字符(信息学奥赛一本通-1148)
【题目描述】 给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。 【输入】 第一行包含一个正整数k,表示至少需要连续出现的次数。1 ≤ k ≤ 1000。 第二行包含需要查找的字符串。字符串长度在1到2500之间,且不包含任何空白符。 【…...
matlab 正态分布
目录 一、概述1、参数2、概率密度函数3、累积分布函数二、代码案例1、拟合正态分布对象2、估计参数3、计算并绘制正态分布的概率密度函数4、绘制标准正态分布的正态累积分布函数5、比较 gamma 和正态分布的概率密度函数6、正态分布和对数正态分布之间的关系7、比较 Student t 和…...
C# MVC项目部署II后错误,403禁止访问:访问被拒绝问题处理
C# MVC项目部署II后错误,403禁止访问:访问被拒绝问题处理 问题如下: 解决办法: 1. 应用程序池要选v4.xx,托管模式选“集成” 2. 把asp.net 4.xx安装在iis上,方法: cd \Windows\Microsoft .NE…...
有趣的算法实践:整数反转与回文检测(Java实现)
题目描述:整数反转与回文检测 要求实现两个功能: 将输入的整数反转(保留符号,如输入-123返回-321)判断反转后的数是否为回文数(正反读相同) 示例: 输入:123 → 反转结…...
数学建模:MATLAB循环神经网络
一、简述 1.循环神经网络 循环神经网络(RNN)是一种用于处理序列数据的神经网络。不同于传统的前馈神经网络,RNN在隐藏层中加入了自反馈连接,使得网络能够对序列中的每个元素执行相同的操作,同时保持一个“记忆”状态…...
东隆科技携手PRIMES成立中国校准实验室,开启激光诊断高精度新时代
3月12日,上海慕尼黑光博会期间,东隆科技正式宣布与德国PRIMES共同成立“中国校准实验室”。这一重要合作标志着东隆科技在本地化服务领域的优势与PRIMES在激光光束诊断领域的顶尖技术深度融合,旨在为中国客户提供更快速、更高精度的服务以及本…...
【MySQL】B树和B+树的区别?MySQL为什么选用B+树作为索引数据结构?
B树和B树的区别: 结构方面: 1.节点存储内容: B树: 节点同时存储索引和数据。B树:只有叶子节点存储数据记录或指向数据记录的指针,非叶子节点只存键值,用于索引。 B 树的非叶子节点可以存储更…...
使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。 测试通过环境: windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…...
Cursor的使用感受,帮你使用好自动化编程工具,整理笔记
使用感受 说实话,我觉得cursor还是好用的,可能我刚开始使用,没有使用的非常的熟练,运用也没有非常的透彻,总体体验还是不错的,在使用它时,我优先考虑,前端页面功能复用的时候&#…...
2024浙江大学计算机考研上机真题
2024浙江大学计算机考研上机真题 2024浙江大学计算机考研复试上机真题 2024浙江大学计算机考研机试真题 2024浙江大学计算机考研复试机试真题 历年浙江大学计算机复试上机真题 历年浙江大学计算机复试机试真题 2024浙江大学计算机复试上机真题 2024浙江大学计算机复试机试真题 …...
JS逆向:通达OA Office Anywhere 2019 的前端密码加密逆向分析,并使用Python构建通达OA登录
免责声明 本文仅为技术研究与渗透测试思路分享,旨在帮助安全从业人员更好地理解相关技术原理和防御措施。任何个人或组织不得利用本文内容从事非法活动或攻击他人系统。 如果任何人因违反法律法规或不当使用本文内容而导致任何法律后果,本文作者概不负责。 请务必遵守法律…...
贴吧ip什么意思?贴吧ip可以查到姓名吗
贴吧作为百度旗下的一个重要社区平台,一直以来都吸引着大量用户进行交流和讨论。然而,随着网络环境的日益复杂,用户的隐私保护问题也日益凸显。其中,贴吧IP地址的显示及其与个人信息的关系,成为不少用户关注的焦点。本…...
【css酷炫效果】纯CSS实现进度条加载动画
【css酷炫效果】纯CSS实现进度条加载动画 缘创作背景html结构css样式完整代码基础版进阶版 效果图 通过CSS渐变与背景位移动画,无需JavaScript即可创建流体动态进度条。 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u…...
【后端开发面试题】每日 3 题(十三)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:https://blog.csdn.net/newin2020/category_12903849.html 📚专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家,每天的题目都是独…...
【Android Studio】解决遇到的一些问题
目录 前言 一、Invalid Gradle JDK configuration found. Open Gradle Settings Change JDK location 报错场景 解决方法 二、adb 不是内部或外部命令,也不是可运行的程序或批处理文件。 报错场景 解决方法 前言 Android Studio的安装过程,可以参…...
UnitTest框架管理测试用例——python自动化测试
UnitTest框架 UnitTest是Python自带一个单元测试框架,常用它来做单元测试。 注意:对于测试来说,UnitTest框架的作用是 自动化脚本(用例代码)执行框架————(使用UnitTest框架来管理 运行多个测试用例的) 为什么使用UnitTest框架 能够组织多个用例去执…...
后端接口开发完成后,接口地址访问不到提示404,Spring项目的包结构错误
后端接口开发完成后,接口地址访问不到提示404,Spring项目的包结构错误 是因为包结构错误,导致无法在请求地址下找到对应的方法,原来错误的包结构(自建controller、service、config等包建到了项目包之外、而非项目包之下…...
算法竞赛-基础算法-位运算
目录 1.快速幂 2.快速乘 3.lowbit(n) 4.其他 5.相关题目 6.小结 引言:位运算的主要特点之一是在二进制表示下不进位,一下为一些基础的位运算操作: 与或非异或and,&or,|not,~xor 1.快速幂 快速幂的计算原理就是基于位运算&#x…...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能📚页面效果📚指令输入�…...
深入解析音频编解码器(Audio CODEC):硬件、接口与驱动开发
音频编解码器(Audio CODEC)是音频处理系统中的核心组件,负责 模拟信号与数字信号的相互转换,广泛应用于 智能音箱、嵌入式系统、消费电子产品 等设备。本篇文章将从 硬件结构、接口解析、驱动开发 和 软件配置 等方面,…...
什么是 Fisher 信息矩阵
什么是 Fisher 信息矩阵 Fisher 信息矩阵是统计学和机器学习中一个重要的概念,它用于衡量样本数据所包含的关于模型参数的信息量。 伯努利分布示例 问题描述 假设我们有一个服从伯努利分布的随机变量 X X X,其概率质量函数为 P ( X ...
【项目合集】智能语音小车-微信小程序控制
功能需求: 车子检测环境温度、湿度,上报 APP、WEB 端显示实时数据可通过 APP 控制小车前进、左转、右转可通过语音控制小车前进后退车上一个 LED 灯,可通过 WEB、小程序控制在 APP、WEB 上均可注册登录 硬件清单 硬件 功能 备注 ESP32 …...
Vue3项目中可以尝试封装那些组件
在 Vue 3 项目中,组件的封装可以根据功能、复用性和业务需求进行划分。以下是一些常见的组件类型,适合封装为独立组件: 1. 基础 UI 组件 按钮 (Button) 封装不同样式、大小、状态的按钮。支持 disabled、loading 等状态。 输入框 (Input) 封…...
Leetcode——151.反转字符串中的单词
题解一 思路 最开始的想法是把一个字符串分为字符串数组,但是不知道一共有几个单词(当时没想起来split()),所以选择了用ArrayList储存字符串,在输出时没有考虑ArrayList可以存储空字符串,所以最开始的输出…...
Deepseek+QuickAPI:打造 MySQL AI 智能体入门篇(一)
目录 一、什么是 MySQL AI 智能体? 二、准备工作:认识工具 1. Deepseek 的大模型能力 2. QuickAPI 的功能 3. MySQL 数据库 三、动手实践:用自然语言打造智能体 1. 创建一个用户表 2. 添加样本数据 3. 执行查询 四、效果展示 五、…...
Redis系列:深入理解缓存穿透、缓存击穿、缓存雪崩及其解决方案
在使用Redis作为缓存系统时,我们经常会遇到“缓存穿透”、“缓存击穿”和“缓存雪崩”等问题,这些问题一旦出现,会严重影响应用性能甚至造成服务不可用。因此,理解这些问题的产生原因和解决方案非常重要。 本文将全面讲解缓存穿透…...
python局部变量和全局变量
文章目录 1.局部变量和全局变量2.局部变量2.1 局部变量的作用2.2 局部变量的生命周期 3. 全局变量3.1 函数不能直接修改全局变量的引用3.2 在函数内部修改全局变量的值3.3 全局变量定义的位置3.4 全局变量命名的建议 1.局部变量和全局变量 (1)局部变量 …...
⭐算法OJ⭐两数之和【哈希表】(C++ 实现)Two Sum
“两数之和”(Two Sum)是一道非常经典的算法题目,几乎是算法入门和面试准备的必做题之一。它的经典性体现在以下几个方面: 1. 算法入门的基础题目 这道题目是许多初学者接触 哈希表(Hash Table) 或 字典&…...
【AVRCP】Notification PDUs 深入解析与应用
目录 一、Notification PDUs 概述 二、GetPlayStatus:同步查询播放状态 2.1 命令功能与应用场景 2.2 请求格式(CT → TG) 2.3 响应格式(TG → CT) 2.4 注意事项 2.5 协议实现示例(伪代码) 三、RegisterNotification:异步事件订阅 3.1 命令概述 3.2 命令格式 …...
算法题(100):腐烂的苹果
审题: 本题需要我们判断苹果是否可以完全腐烂,若可以完全腐烂,那么最短腐烂的所需时间是多少 思路: 方法一:多源BFS 首先我们分析腐烂过程,第一批腐烂苹果开始扩散,然后第二批腐烂苹果继续扩散&…...
某快餐店用户市场数据挖掘与可视化
1、必要库的载入 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns2、加载并清洗数据 # 2.1 加载数据 df pd.read_csv(/home/mw/input/survey6263/mcdonalds.csv)# 2.2 数据清洗 # 2.2.1 检查缺失值 print(缺失值情况:) print(df.isn…...
【微服务】如何用Azure容器应用Job处理异步HTTP API请求
【微服务】如何用Azure容器应用Job处理异步HTTP API请求 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【微服务】如何用Azure容器应用Job处理异步HTTP API请求Azure容器应用中的长…...
安卓edge://inspect 和 chrome://inspect调试移动设备上的网页
edge://inspect 和 chrome://inspect 是用于调试浏览器中运行的网页和移动设备上的网页的工具。这两个工具分别属于 Microsoft Edge 和 Google Chrome 浏览器。以下是它们的详细介绍: chrome://inspect 如果是直接使用数据线调试,则只需要执行下面的第一…...
TX-LCN 框架
TX-LCN 框架通俗教学(面试场景版) 一句话概括 TX-LCN 是分布式事务的 “交通警察”,确保多个微服务操作要么全部成功(比如转账扣款和到账),要么全部回滚(比如网购下单失败后库存自动恢复&#…...
玩转github
me github 可以给仓库添加开发人员吗 4o 是的,GitHub允许仓库管理员为仓库添加开发人员,并设置这些开发人员的角色和权限。这里是一个简单的步骤指导,教你如何给一个 GitHub 仓库添加开发人员: 前提条件 你必须有这个仓库的权限&…...