linux - 权限的概念
目录
用户权限
超级用户与普通用户的区别
超级用户(root):
普通用户:
切换用户身份
使用sudo执行高权限命令
用户管理
用户组管理
文件权限
文件访问者类别
基本权限
权限表示方法
权限修改
chmod
chown
chgrp
umask
粘滞位
一些提示
本博客我们要了解用户权限和文件的权限
用户权限
Linux下有两种⽤⼾:超级⽤⼾(root)、普通⽤⼾。普通⽤⼾:在linux下做有限的事情。超级⽤⼾:可以再linux系统下做任何事情,不受限制超级⽤⼾的命令提⽰符是“#”,普通⽤⼾的命令提⽰符是“$”。
超级用户与普通用户的区别
在Linux系统中,用户主要分为两类:超级用户(root)和普通用户。它们在系统权限和操作范围上有显著差异。
超级用户(root):
- 拥有系统的最高权限,可以执行任何操作,包括修改系统文件、安装软件、管理用户等。
- 命令提示符通常以“#”结尾,表示当前用户为超级用户。
- 由于权限过高,建议仅在必要时使用root账户,以避免误操作导致系统损坏。因此平时我们就用普通用户来对linux进行操作,避免出现 rm -rf /这种巨大错误
普通用户:
- 权限受限,只能执行与自身相关的操作,如管理个人文件、运行普通程序等。
- 无法直接修改系统文件或执行需要高权限的操作。
- 命令提示符通常以“$”结尾,表示当前用户为普通用户。
切换用户身份
在Linux系统中,可以通过以下命令在超级用户和普通用户之间切换:
从普通用户切换到超级用户:
su -
输入该命令后,系统会提示输入root用户的密码,验证成功后即可切换到root用户。
从超级用户切换回普通用户:
exit
输入该命令后,系统会退出root用户,返回到之前的普通用户身份。
使用sudo执行高权限命令
为了避免频繁切换用户,普通用户可以使用sudo
命令临时获取超级用户权限来执行特定命令。例如:
sudo apt-get update
该命令会提示输入当前用户的密码,验证成功后以root权限执行apt-get update
。
用户管理
创建新用户:
sudo adduser username
该命令会创建一个新用户,并提示设置密码和其他信息。
创建好后我们就可以用普通用户来操作linux了
删除用户:
sudo deluser username
该命令会删除指定用户及其主目录。
修改用户密码:
sudo passwd username
该命令允许超级用户为指定用户修改密码。
用户组管理
我们只设置超级用户root和普通用户两个权限是否够用呢?答案是够用的,但是用着不舒服,如果我们要给一些用户一些权限,那么就要给这些用户一个一个分配,到时候又要一个一个取消。十分麻烦,因此就有了用户组来统一管理权限
一个用户有一个主组和多个附属组,一个用户加入到另一个组里后,这个组就是这个用户的附属组
一个用户被创建的时候,会默认给这个用户生成一个主组,主组的名字就是用户名。
为了方便理解,我用团体来类比,每个人都是一个团体,这个团体就叫主体(主组)。然后可以归属其他团体,归属后就会以团体身份操作对方资源。
通过文件属性查看,第一个dgj是这个文件所属者,即谁创建它的;第二个dgj是这个文件的创建者的所属组,因为dgj的主组是dgj,所以所属组默认就是dgj了。
通过给出所属组,相当于创建者背后的团体成员,就可以进行权限的区别对待了。
主组是可以修改的,但是不建议这样。感兴趣这可以查阅资料
将用户添加到用户组:
sudo usermod -aG groupname username
该命令将指定用户添加到指定用户组中。
例如 sudo usermod -aG A B
那么B用户就进入A用户的主组了,
创建新用户组:
sudo addgroup groupname
该命令会创建一个新的用户组。这个组不是任何用户的主组,因此要通过修改主组的命令给它分配用户
删除用户组:
sudo delgroup groupname
该命令会删除指定的用户组。
通过以上方法,可以有效地管理Linux系统中的用户和权限,确保系统的安全性和稳定性。
至于在哪体现用户组和普通用户权限区别,具体在文件权限来看
文件权限
首先我们了解一下文件的类型
我们看每个文件属性最前面的一个字母就是描述的文件类型
d:文件夹 -:普通文件
l: 软链接 b:快设备文件(如硬盘)
p:管道文件 c:字符设备文件
s:套接口文件
可以使用file命令 来显示当前文件是什么类型
文件访问者类别
- 文件和文件目录所有者
- 文件和文件目录所有者所在的组的用户
- 其他用户
基本权限
- 读:Read对⽂件⽽⾔,具有读取⽂件内容的权限;对⽬录来说,具有浏览该⽬录信息
的权限,即能不能用 ls 查看
- 写:Write对⽂件⽽⾔,具有修改⽂件内容的权限;对⽬录来说具有删除或创建⽬录内
⽂件的权限,即能不能用rm或者rmdir 和 touch或者mkdir
- 执行:execute对⽂件⽽⾔,具有执⾏⽂件的权限;对⽬录来说,具有进⼊⽬录的权
限,即能不能用 cd 命令进入
-
-:表示没有这个权限,下图可以看出
上图的九项就是权限的描述,分别是读写执行重复三次,为什么要出复三次呢?
这是描述所有者,所属组,其他用户的权限说明,每个类型都有三个权限来描述分别是读写执行。
通过这九项三大类,就可以把文件权限管理的十分恰当,但也有不足,后面说
权限表示方法
_ _ _ _ _ _ _ _ _三类分别看,每个_有两个情况,因此有2^3=8种,所以我们可以用三位八进制来简洁表示我们的权限。
例如 rw__wx___ 就是110 011 000就是630
一个文件创建后的默认权限是666,一个目录创建的默认权限是777
权限修改
一个文件的修改权一般只能是文件所有者或者root
chmod
功能:设置⽂件的访问权限
格式:chmod [参数] 权限 ⽂件名 常⽤选项:
• R -> 递归修改⽬录⽂件的权限
• 说明:只有⽂件的拥有者和root才可以改变⽂件的权限
chmod命令权限值的格式:
1 ⽤⼾表⽰符+/-=权限字符
◦ +:向权限范围增加权限代号所表⽰的权限
◦ -:向权限范围取消权限代号所表⽰的权限
◦ =:向权限范围赋予权限代号所表⽰的权限
◦ ⽤⼾符号:
◦ u:拥有者
◦ g:拥有者同组⽤
◦ o:其它⽤⼾
◦ a:所有⽤⼾
◦ 实例:
▪ chmod u+w /home/abc.txt
▪ chmod o-x /home/abc.txt
▪ chmod a=x /home/abc.txt
2 三位8进制数字
◦ 实例:
▪ chmod 664 /home/abc.txt
▪ chmod 640 /home/abc.txt
chown
修改一个文件的所有者
格式:chown [参数] ⽤⼾名 ⽂件名
-R 递归修改⽂件或⽬录的所属者
chgrp
修改一个文件的所属组
-R 递归修改⽂件或⽬录的所属组
chgrp users 文件名
umask
首先要了解 权限掩码是什么,我们创建一个文件和目录:
我们发现文件权限不是66,目录权限也不是777
这是因为有权限掩码,权限掩码就是让某些权限在创建的时候不给出
第一位是特殊权限位不用管。因此权限掩码就是000 000 010,即其他组没有写权限。也就和ll的对应上了
粘滞位
有一个潜在的问题,只要一个用户拥有目录写的权限就可以删除这个目录下的文件,这是不可取的。我创建的文件凭什么被你给删除掉了呢?
因此有了粘滞位
chmod +t 目录
当⼀个⽬录被设置为"粘滞位"(⽤chmod +t),则该⽬录下的⽂件只能由
1. 超级管理员删除
2. 该⽬录的所有者删除
3. 该⽂件的所有者删除
一些提示
• ⽬录的可执⾏权限是表⽰你可否在⽬录下执⾏命令。
• 如果⽬录没有 -x 权限,则⽆法对⽬录执⾏任何命令,甚⾄⽆法 cd 进⼊⽬, 即使⽬录仍然有 -r 读
权限(这个地⽅很容易犯错,认为有读权限就可以进⼊⽬录读取⽬录下的⽂件)
• ⽽如果⽬录具有 -x 权限,但没有 -r 权限,则⽤⼾可以执⾏命令,可以 cd 进⼊⽬录。但没有
⽬录的读权限
• 所以在⽬录下,即使可以执⾏ ls 命令,但仍然没有权限读出⽬录下的⽂档。
相关文章:

linux - 权限的概念
目录 用户权限 超级用户与普通用户的区别 超级用户(root): 普通用户: 切换用户身份 使用sudo执行高权限命令 用户管理 用户组管理 文件权限 文件访问者类别 基本权限 权限表示方法 权限修改 chmod chown chgrp u…...
函数的定义与调用 -《Go语言实战指南》
函数是 Go 编程的基本单元。Go 支持普通函数、匿名函数、高阶函数(函数作为参数或返回值)以及多返回值机制。 一、函数的定义格式 func 函数名(参数列表) 返回值列表 {// 函数体 } 示例: func add(a int, b int) int {return a b } 说明&…...
理解 Token 索引 vs 字符位置
以下是对“理解 Token 索引与字符位置的区别”的内容整理,条理清晰,结构完整,保持技术细节,方便阅读,无多余解释: 🔍 理解 Token 索引 vs 字符位置 文本分块方法中返回的索引是 token 索引&…...

【Vue】CSS3实现关键帧动画
关键帧动画 两个重点keyframesanimation子属性 实现案例效果展示: 两个重点 keyframes 和 animation 作用:通过定义关键帧(keyframes)和动画(animation)规则,实现复杂的关键帧动画。 keyframes 定义动画的关键帧序列…...

AD 多层线路及装配图PDF的输出
装配图的输出: 1.点开‘智能PDF’ 2. 设置显示顶层: 设置显示底层: 多层线路的输出 同样使用‘智能PDF’...

MultiTTS 1.7.6 | 最强离线语音引擎,提供多音色无障碍朗读功能,附带语音包
MultiTTS是一款免费且支持离线使用的文本转语音(TTS)工具,旨在为用户提供丰富的语音包选项,实现多音色无障碍朗读功能。这款应用程序特别适合用于阅读软件中的离线听书体验,提供了多样化的语音选择,使得听书…...

基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正|文献速递-深度学习医疗AI最新文献
Title 题目 Joint coil sensitivity and motion correction in parallel MRI with aself-calibrating score-based diffusion model 基于自校准分数的扩散模型在并行磁共振成像中联合进行线圈灵敏度校正和运动校正 01 文献速递介绍 磁共振成像(MRI)…...

OCR发票识别API实现
OCR发票识别API实现 1. 阿里云OCR发票识别2. Tesseract OCR3. 利用java调用大模型进行识别4. 飞桨PaddleOCR 1. 阿里云OCR发票识别 阿里云OCR发票识别 示例: 接口:https://dgfp.market.alicloudapi.com/ocrservice/invoice 参数:{"img&…...

实战案例:采集 51job 企业招聘信息
本文将带你从零开始,借助 Feapder 快速搭建一个企业级招聘信息数据管道。在“基础概念”部分,我们先了解什么是数据管道和 Feapder;“生动比喻”用日常场景帮助你快速理解爬虫组件;“技术场景”介绍本项目中如何使用代理等采集策略…...

从AlphaGo到ChatGPT:AI技术如何一步步改变世界?
从AlphaGo到ChatGPT:AI技术如何一步步改变世界? 这里给大家分享一个人工智能学习网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 在科技发展的历史长河中,人工智能(AI)技术无疑是最为璀璨的明珠之一。从…...
推荐6大wordpress模板资源网站
1. 模板之家 模板之家是一个提供丰富网站模板资源的平台。它涵盖了多种类型的模板,包括企业官网、个人博客、电商网站等,能够满足不同用户对于网站搭建的需求。其模板设计精美,功能多样,且注重用户体验,方便用户快速搭…...

AI 编程革命:腾讯云 CodeBuddy 如何重塑开发效率?
引言 在传统开发流程中,开发者常需依赖 SDK 文档或反复调试来获取云资源信息。而随着 AI 技术爆发式发展,腾讯云推出的 CodeBuddy 正以对话式编程颠覆这一模式 —— 只需自然语言描述需求,即可直接生成可执行代码。作为腾讯混元大模型与 Dee…...

星海智算云平台部署GPT-SoVITS模型教程
背景 随着 GPT-SoVITS 在 AI 语音合成领域的广泛应用,越来越多的个人和团队开始关注这项前沿技术。你是否也在思考,如何快速、高效地部署并体验这款强大的声音克隆模型?遗憾的是,许多本地部署方案不仅配置复杂,而且对…...

15:00开始面试,15:06就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到4月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
python 的 uv、pip 和 conda 对比和技术选型
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...

20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤
20250515通过以太网让VLC拉取视熙科技的机芯的rtsp视频流的步骤 2025/5/15 20:26 缘起:荣品的PRO-RK3566适配视熙科技 的4800W的机芯。 1080p出图预览的时候没图了。 通过105的机芯出图确认 荣品的PRO-RK3566 的硬件正常。 然后要确认 视熙科技 的4800W的机芯是否出…...
GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范
点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 引言 在高校实验室的GPU加速计算研究中,多卡并行编程已成为提升深度学习训练效…...

UE5.3 C++ 房屋管理系统(二)
三.当房屋生成成功,我们就需要把TMap里的数据存到数据库里。不然一点停止运行,就会所以数据都不见了。这里使用DataTable来存储。 1.DataTable是UE常用的表,虽然不是专门用来存档的,但也可以这么用。 DataTable表,实…...

VSCode1.101.0便携版|中英文|编辑器|安装教程
软件介绍 Visual Studio Code是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,设计得很人性化,旨在为所有开发者提供一款专注于代码本身的免费的编辑器。 软件安装 1、 下载安装包…...

Linux系统发布.net core程序
前端 前端用的Vue3,发布的话需要Nginx下载安装Nginx 麒麟:这里我麒麟用的是桌面版,我直接把操作流程写在下面,写的比较简单,具体的可以具体搜这一块内容学习一下。打包vue程序,通过MobaXterm将打包后的程序…...
当需要在一个方法中清除多个缓存时,@CacheEvict注解能否实现这个需求
想清除Redis中的多个缓存数据,如何实现? CacheEvict清除一个缓存,但现在想知道如何处理多个缓存的情况。场景:可能有一个更新用户信息的方法,这个方法执行后,不仅需要清除某个特定的用户缓存,还…...

极新携手火山引擎,共探AI时代生态共建的破局点与增长引擎
在生成式AI与行业大模型的双重驱动下,人工智能正以前所未有的速度重构互联网产业生态。从内容创作、用户交互到商业决策,AI技术渗透至产品研发、运营的全链条,推动效率跃升与创新模式变革。然而,面对AI技术迭代的爆发期࿰…...
Score-CAM:卷积神经网络的评分加权视觉解释
摘要 最近,越来越多的关注被引向卷积神经网络的内部机制,以及网络为何会做出特定决策。本文中,我们开发了一种基于类别激活映射的新颖事后可视化解释方法,称为Score-CAM。与以往基于类别激活映射的方法不同,Score-CAM通过前向传递得分获取每个激活图的权重,从而摆脱了对…...
Python刷题练习
文章目录 1.寻找相同字串2.密钥格式化3.五键键盘的输出4.单词重量5.输出指定字母在字符串的中的索引6.污染水域7.九宫格按键输入8.任务最优调度9.高效的任务规划 1.寻找相同字串 题目描述: 给你两个字符串t和p,要求从t中找到一个和p相同的连续子串,并输…...

对比 HTTP-REST 与 gRPC:各自的优缺点以及适用的场景
文章目录 对比 HTTP-REST 与 gRPC:各自的优缺点以及适用的场景HTTP-REST 与 gRPC 的核心区别gRPC 的优缺点HTTP-REST 的优缺点适用场景 模糊点什么是 Protobuf?HTTP/2 会将 HTTP 消息拆分并封装为二进制帧,那还能过使用 HTTP/2 构建 RESTful …...

Git - 1( 14000 字详解 )
一: Git 初识 1.1 提出问题 在工作或学习中,我们常常会面临文档管理的问题,尤其是在编写各种文档时。为了防止文档丢失或因更改失误而无法恢复,我们常常会创建多个版本的副本,例如:“报告-v1”、“报告-v…...

TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
9.1——广播和本地组播(IGMP 和 MLD) IPv4可以使用4种IP地址:单播(unicast)、任播(anycast)、组播(multicast)和广播(broadcast)。 IPv6可以使用…...

16.1 - VDMA视频转发实验之TPG
文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1,使用Xilinx TPG(Test Pattern Generator) IP提供视频源,将视频数据通过VDMA写入PS…...

cocos creator 3.8 下的 2D 改动
在B站找到的系统性cocos视频教程,纯2D开发入门,链接如下: zzehz黑马程序员6天实战游戏开发微信小程序(Cocos2d的升级版 CocosCreator JavaScript)_哔哩哔哩_bilibili黑马程序员6天实战游戏开发微信小程序(Cocos2d的升级版 CocosCreator Ja…...
Vue3 + Element Plus 动态表单实现
完整代码 <template><div class"dynamic-form-container"><el-formref"dynamicFormRef":model"formData":rules"formRules"label-width"auto"label-position"top"v-loading"loading"&g…...