Linux权限管理:从入门到实践
目录
引言
编辑一、Linux用户类型
二、文件访问者分类
三、文件类型和访问权限
(一)文件类型
(二)基本权限
四、文件访问权限设置方法
(一)chmod命令
(二)chown命令
(三)chgrp命令编辑
(四)umask命令
(五)file指令
(六)使用sudo分配权限
五、粘滞位
六、目录的权限
(一)可执行权限
(二)可读权限
(三)可写权限
七、总结
引言
在Linux系统中,权限管理是保障系统安全和数据完整性的重要机制。合理设置文件和目录的权限,能有效防止非法访问和误操作。本文将详细介绍Linux权限管理相关知识,帮助大家深入理解并熟练运用。

一、Linux用户类型
Linux系统中有两种主要用户类型:
- 超级用户(root)(为所欲为):拥有至高无上的权限,可以在系统中做任何事情,不受限制。其命令提示符为“#” 。例如,root用户可以随意修改系统配置文件、删除重要系统目录等操作。但也正因如此,使用root用户操作时需格外谨慎,一旦误操作可能导致系统故障。
- 普通用户:权限有限,只能在允许的范围内进行操作,命令提示符为“$” 。普通用户可以对自己的文件和目录进行操作,如创建、删除、修改等,但对系统关键部分则没有权限访问。
切换用户使用 su [用户名] 命令 。从root切换到普通用户直接 su 用户名 ;普通用户切换到root用户,使用 su root (root可省略),此时需输入root用户密码。
root变为普通用户直接su[用户名]
二、文件访问者分类
文件访问者分为三类:
- 文件所有者(u - User):创建文件的用户,对文件拥有较高控制权。比如用户创建了一个文档,该用户就是文件所有者,可决定文件是否允许他人读取、修改等。
- 文件所有者所在组的用户(g - Group):同一用户组内的成员,在权限设置下可对文件进行相应操作。例如一个项目组的成员在同一用户组,组内成员对项目相关文件根据权限设置有不同操作权限。
- 其他用户(o - Others):除上述两类之外的用户,通常权限相对较低。
三、文件类型和访问权限
(一)文件类型
- d:文件夹,用于组织和存储文件及其他文件夹。
- -:普通文件,如文本文件、二进制程序文件等。
- l:软链接,类似Windows的快捷方式,指向其他文件或目录。
- b:块设备文件,像硬盘、光驱等存储设备。
- p:管道文件,用于进程间通信。
- c:字符设备文件,如屏幕等串口设备。
- s:套接口文件,用于网络通信。
(二)基本权限
- 读(r/4):对文件可读取内容;对目录可浏览信息。比如对一个文本文件有读权限,就能查看文件内容;对目录有读权限,可使用 ls 命令查看目录下文件列表。
- 写(w/2):对文件可修改内容;对目录可删除、移动目录内文件。例如对文件有写权限,就能编辑文件;对目录有写权限,可删除目录内文件。
- 执行(x/1):对文件可执行;对目录可进入。可执行文件(如脚本文件、二进制程序)有执行权限才能运行;对目录有执行权限才能使用 cd 命令进入。
- “-”:表示不具有该项权限。
权限表示形式有字符表示和八进制数值表示 。字符表示如 rwx 表示可读可写可执行, r-- 表示只读等;八进制数值表示中, r 对应4, w 对应2, x 对应1 ,组合起来如 rwx 是7(4 + 2 + 1 ), rw- 是6(4 + 2 )等。
四、文件访问权限设置方法
(一)chmod命令
功能是设置文件的访问权限,格式为 chmod [参数] 权限 文件名 。
- 常用选项: R 可递归修改目录文件权限。
- 权限值格式:
- 用户表示符+/-/=权限字符 : + 增加权限, - 取消权限, = 赋予权限。例如 chmod u+w /home/abc.txt 给文件所有者增加写权限; chmod o-x /home/abc.txt 取消其他用户的执行权限。
- 三位8进制数字 :如 chmod 664 /home/abc.txt ,第一个6表示所有者权限(4读 + 2写 ),第二个6表示所属组权限(4读 + 2写 ),4表示其他用户权限(4读 ) 。
注意:只有文件所有者和root可以改变文件权限。
(二)chown命令
功能是修改文件的拥有者,格式为 chown [参数] 用户名 文件名 。例如 chown user1 f1 将文件 f1 的所有者改为 user1 ; chown -R user1 filegroup1 递归修改 filegroup1 目录及其下所有文件的所有者为 user1 。
(三)chgrp命令
用于修改文件或目录的所属组,格式是 chgrp [参数] 用户组名 文件名 。常用选项 -R 递归修改。比如 chgrp users /abc/f2 将文件 /abc/f2 的所属组改为 users 。
(四)umask命令
用于查看或修改文件掩码。新建文件默认权限是0666,新建目录默认权限是0777,但实际创建的文件和目录权限会受umask影响,实际权限是 mask & ~umask 。格式为 umask 权限值 ,如 umask 755 设置掩码, umask 可查看当前掩码 。超级用户默认掩码值为0022,普通用户默认为0002 。
(五)file指令
功能是辨识文件类型,语法为 file [选项] 文件或目录... 。
常用选项 -c 详细显示指令执行过程, -z 尝试去解读压缩文件内容。
(六)使用sudo分配权限
1. 修改/etc/sudoers文件分配文件 :先使用 chmod 740 /etc/sudoers 修改文件权限,再用 vi /etc/sudoers 编辑文件。格式为 接受权限的用户登陆的主机 = (执行命令的用户) 命令 。
2. 使用sudo调用授权的命令 :格式为 $ sudo -u 用户名 命令 ,例如 $ sudo -u root /usr/sbin/useradd u2 以root身份执行添加用户 u2 的命令。
五、粘滞位
当一个目录被设置为“粘滞位”(用 chmod +t ) ,则该目录下的文件只能由:
- 超级管理员删除;
- 该目录的所有者删除;
- 该文件的所有者删除。
这解决了用户对目录有写权限就可随意删除目录内文件(即使无文件写权限)的问题。例如在 /home 目录设置粘滞位后,普通用户就不能随意删除其他用户在该目录下的文件。
六、目录的权限
(一)可执行权限
目录没有可执行权限,就无法使用 cd 命令进入目录。
(二)可读权限
若目录没有可读权限,无法用 ls 命令查看目录中的文件内容。
(三)可写权限
若目录没有可写权限,无法在目录中创建文件,也无法删除目录中的文件。
七、总结
Linux权限管理看似复杂,但只要理解用户类型、文件访问者分类、文件类型和权限设置方法等核心要点,就能灵活运用。在实际操作中,要注意权限设置的合理性,避免因权限设置不当导致安全问题或操作受限。尤其是涉及系统关键文件和目录时,更要谨慎操作,必要时做好备份,确保系统稳定和数据安全。
希望通过本文,大家能对Linux权限管理有更深入的认识,在日常使用和工作中能更好地管理系统资源。
相关文章:
Linux权限管理:从入门到实践
目录 引言 编辑一、Linux用户类型 二、文件访问者分类 三、文件类型和访问权限 (一)文件类型 (二)基本权限 四、文件访问权限设置方法 (一)chmod命令 (二)chown命令 &…...
计算机网络(1)
名称解析 名称解析:将名称解析成对应地址,名字-->IP 名称解析优点:便以记忆、解耦(断开直接的练习) 容器 mini的虚拟机,该容器地址是动态的、生命周期短暂;可实现登录功能 如果用户想要登录该…...
第十一天 - MySQL/SQLite操作 - 数据库备份脚本 - 练习:监控数据存储系统
数据库实战入门:从零构建监控数据存储系统 前言 在物联网和系统监控领域,数据存储是核心基础环节。本文将通过MySQL/SQLite操作、数据库备份脚本和监控数据存储实战三个模块,带领初学者快速掌握数据库在真实场景中的应用。文章包含25个代码…...
编写文生视频提示词,制作抖音爆款视频
编写文生视频提示词,制作抖音爆款视频 一、理解文生视频提示词1.1 定义提示词1.1.1 提示词与创作工具的关系1.1.2 文生视频的功能 1.2 提示词的组成1.2.1 主体(Subject)1.2.2 动作(Action)1.2.3 场景(Scene…...
Linux: 线程控制
目录 一 前言 二 线程控制 1. POSIX线程库(原生线程库) 2. 创建线程 2.1 pthread_create 2.2pthread_self()获取线程id 3.线程终止 3.1.return 方式 3.2 pthread_exit 4 线程等待 三 理解线程tid 一 前言 在上一篇文章中我们已经学习了线程的概念,线程的创…...
为什么 npm list -g 没显示 node_modules?✨
揭秘:为什么 npm list -g 没显示 node_modules?🕵️♂️✨ 嗨,各位代码探险家!👋 今天我们要破解一个 npm 小谜团:运行 npm list -g --depth0 时,为什么输出的路径里看不到 node_…...
华为数字芯片机考2025合集4已校正
单选 1. 题目内容 影响芯片成本的主要因素是 Die Size 和封装,但电源、时钟等因素,特别是功耗对解决方案的成本影响较大,因此低成本设计需要兼顾低功耗设计:() 1. 解题步骤 1.1 分析题目 Die Size&…...
达摩院Paraformer-ONNX模型:一站式高精度中文语音识别工业级解决方案
文章目录 核心技术创新三大部署方案对比1. Docker极简部署(推荐)2. Python API直连调用3. 客户端实时测试工具 高阶调优技巧典型应用场景高频问题解决方案参考 阿里达摩院推出的speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-on…...
Llama 4的争议
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
React七案例下
代码下载 登录模块 用户登录 页面结构 新建 Login 组件,对应结构: export default function Login() {return (<div className{styles.root}><NavHeader className{styles.header}>账号登录</NavHeader><form className{styles.form}>&…...
Rust包管理与错误处理
文章目录 包管理箱(Crate)包(Package)模块(Module)访问权限use关键字 错误处理不可恢复错误可恢复错误错误传递kind方法 包管理 Rust的包管理有三个重要的概念,分别是箱、包、模块 箱…...
关于gitee的readme文档中的图片问题
使用markdown编辑readme文档,需要注意 添加图片,但是不显示问题 1.记得连图片一起上传到仓库中,不能只是在本地markdown文件中复制就结束了,因为存储的是本地图片地址,上传后找不到的 2.注意使用网络地址࿰…...
记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法
记录vscode连接不上wsl子系统下ubuntu18.04问题解决方法 报错内容尝试第一次解决方法尝试第二次解决方法注意事项参考连接 报错内容 Unable to download server on client side: Error: Request downloadRequest failed unexpectedly without providing any details… Will tr…...
aws平台练习
注册 AWS 账户 访问 AWS 官方网站,点击“免费注册”按钮,按照提示完成账户注册: 提供电子邮件地址、密码和电话号码。 验证身份(可能需要手机验证码)。 设置 billing 信息。 2. 登录 AWS 管理控制台 使用注册的邮箱和…...
实战篇-梳理时钟树
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 这是B站傅里叶的猫视频的笔记 一、建立工程 以Vivado的wave_gen为例子。为了引入异…...
【Hadoop入门】Hadoop生态之Hive简介
1 什么是Hive? 1.1 Hive概述 在大数据时代,如何让传统的数据分析师和SQL开发人员也能轻松处理海量数据?Hive应运而生。Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了一种类似SQL的查询语言(HQL)&a…...
DSP复习【3章】
F2812提供了XINTF用于扩展并行接口的外设芯片。 XINTF(外部接口)所需的时钟是 SYSCLKOUT 和 XTIMCLK。 所以正确答案是: ✅ SYSCLKOUT 和 XTIMCLK 什么是XREADY信号,如何使用? 章节例题: 1. 如何通过软件判…...
Hadoop案例——流量统计
Hadoop案例——流量统计 在大数据时代,流量统计是许多企业和组织的关键需求之一。通过分析网络流量数据,企业可以优化网络资源分配、提升用户体验、制定精准的营销策略等。本文将介绍如何使用 Hadoop 框架实现一个简单的流量统计案例,包括数…...
Linux管道 有名管道(FIFO)工作机制全解:从理论到实践
有名管道(重要) 有名管道/命名管道,主要用于没有血缘关系进程间的通信 当然也支持有血缘关系的情况,只是如果有血缘关系,没有必要使用有名管道,无名管道效果更佳 引入 好了,现在使用条件有了…...
java基础-修饰符
java修饰符 修饰符分类访问修饰符的作用域代码说明访问修饰符总览 非访问修饰符staticfinalabstractsynchronizedvolatiletransientnativestrictfp非访问修饰符总览表 非访问修饰符组合与冲突规则 修饰符分类 分类:访问修饰符 和 非访问修饰符 1.访问修饰符 公共…...
解锁基因密码之重测序(从测序到分析)
在生命科学的奇妙世界中,基因恰似一本记录着生命奥秘的“天书”,它承载着生物体生长、发育、衰老乃至疾病等一切生命现象的关键信息。而重测序技术,则是开启基因“天书”奥秘的一把神奇钥匙。 试想,你手中有一本经典书籍的通用版…...
当使用 Docker Desktop 启动 Tomcat 镜像时时间不对
当使用 Docker Desktop 启动 Tomcat 镜像时时间不对,可能由以下原因导致并可采取相应解决方法: 宿主机时间设置问题:Docker 容器的时间是由宿主机提供的,如果宿主机的时间不正确,那么容器的时间也会不正确。需确保宿主…...
golang gmp模型分析
思维导图: 1. 发展过程 思维导图: 在单机时代是没有多线程、多进程、协程这些概念的。早期的操作系统都是顺序执行 单进程的缺点有: 单一执行流程、计算机只能一个任务一个任务进行处理进程阻塞所带来的CPU时间的浪费 处于对CPU资源的利用&…...
Redisson的RedLock与联锁(MultiLock)的区别
Redisson提供了两种分布式锁机制:RedLock(红锁)和MultiLock(联锁),它们在实现分布式锁时有重要区别。 1. RedLock (红锁) 设计原理: 基于Redis官方提出的Redlock算法实现目的是在Redis集群环境下提供更可靠的分布式锁需要至少3个独立的Redi…...
图灵逆向——题十-魔改算法
目录列表 过程分析JS代码还原代码实现运行结果 本题属于魔改标准加密算法,所以无法使用JS或Python中的标准库来进行模拟加密了,只能一步一步的还原它的环境咯。。。 过程分析 打开控制台发现有个无限debugger,直接过掉~[doge]。。。 OK过掉…...
K8S学习之基础七十九:关闭istio功能
关闭istio功能 kubectl get ns --show-labels kubectl label ns default istio-injection-有istio-injectionenabled的命名空间,pod都会开启istio功能 反之,如果要开启istio,在对应命名空间打上该标签即可...
AI大模型课程系列汇总-某客时间篇
某客时间系列篇章💥 NO.文章(点击可跳转)1【课程系列11】某客时间AI 大模型应用开发实战营_ai大模型应用开发实战营 百度云-CSDN博客2【课程系列12】某客时间AI大模型微调训练营_极客时间 大模型rag 网盘-CSDN博客3【课程系列15】2024某客时…...
【人工智能】大语言模型多义词解析技术揭秘——以“项目“歧义消解为例
今天田辛老师和小伙伴探讨了一个有趣的多义词问题, 在人工智能技术日新月异的今天,大语言模型(LLM)对自然语言的理解能力已经达到令人惊叹的水平。大模型到底是如何去区分多义词的? 比如:当用户提到"…...
Coze平台 发布AI测试Agent的完整实现方案
以下是基于 Coze平台 发布AI测试Agent的完整实现方案,包含架构设计、核心功能模块、集成方式和落地步骤: 一、方案架构图 #mermaid-svg-kzS7cltxrbetjROl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kzS7cltxr…...
OpenHarmony子系统开发 - 调测工具(二)
OpenHarmony子系统开发 - 调测工具(二) 三、hiperf使用指导 hiperf是为开发人员提供性能采样分析的工具,基于内核perf机制进行的用户态能力的扩展,可以对指定的程序或者整个系统进行性能采样。 hiperf支持的命令有:l…...
keil ERROR: L6220E 如何解决
最近调试MK8000方案,增加code后遇到: keil ERROR: L6220E: Execution region RW_RAM1 size (24592 bytes) execeeds limit (24568 bytes) .region contains 93 bytes of padding and 0 bytes of veneers (total 93 bytes of linker generated content) …...
c++比较器——priority_queue用 ; unordered_map 自定义哈希函数
文章目录 priority_queue自定义比较方法对 比较对象结构体 重载 <仿函数为什么是传一个类std::less<T> 和 std::greater<T> lambda unordered_map自定义哈希函数仿函数lambda priority_queue template<class T,class Container std::vector<T>,class…...
centos-LLM-生物信息-BioGPT安装
参考: GitHub - microsoft/BioGPT https://github.com/microsoft/BioGPT BioGPT:用于生物医学文本生成和挖掘的生成式预训练转换器 |生物信息学简报 |牛津学术 — BioGPT: generative pre-trained transformer for biomedical text generation and mini…...
esp32cam远程图传:AI Thinker ESP32-CAM -》 服务器公网 | 服务器 -》 电脑显示
用AI Thinker ESP32-CAM板子访问公网ip的5112端口并上传你的摄像头拍摄的图像视频数据,并写一段python程序打开弹窗接受图像实现超远程图像传输教程免费 1. 首先你要有一个公网ip也就是去买一台拥有公网的服务器电脑,我买的是腾讯云1年38元的服务器还可…...
今日踩坑之@Autowired与@Resource区别
案例说明 今天算是体验到了这俩注解的区别了,真所谓不报错就记不住这两注解区别,其实之前本人也是知道这俩注解的区别的只是我们往往项目上用习惯了Autowired就忘了,看来只有真正体会到报错才能记忆犹新o(╥﹏╥)o。 说明一下本人的踩坑情况&…...
在 M1 芯片的 Mac 电脑上安装 Redis 可以通过 Homebrew 快速完成
以下是详细步骤: 1. 安装 Homebrew(若未安装) 打开 终端,执行以下命令安装 Homebrew(已安装可跳过): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/…...
【从零开始学习JVM | 第一篇】快速认识JVM
什么是JVM? JVM--Java虚拟机,它是Java实现平台无关性的基石。 Java程序运行的时候,编译器将Java代码编译为平台无关的Java字节码文件(.class),接下来对应平台的JVM对字节码进行运行解释,翻译成…...
linux 里的创建了一个tomcat用户 怎么禁止该用户使用crontab 功能
在 Linux 系统中,可以通过以下方法禁止 tomcat 用户使用 crontab 功能: 方法 1:通过 /etc/cron.deny 文件限制 这是 最推荐的标准方法,适用于所有主流 Linux 发行版(CentOS、Ubuntu 等)。 操作步骤&#…...
Elasticsearch入门指南(二)
一、RestClient操作索引库 什么是RestClient? ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/in…...
Mac监控新风尚:酷炫界面,性能监控更直观!
你是否曾经希望自己的Mac能够像Windows那样,轻松一按就能查看任务管理器来监控性能状态呢? 对于Mac用户来说,系统性能监控一直是个挑战——苹果公司并没有提供一个直观的性能监控工具,用户往往需要通过复杂的活动监视器来获取这些…...
碰一碰发视频源码开发深度解析,定制化开发
在移动应用开发领域,便捷的数据分享功能始终备受关注。碰一碰发视频这一创新功能,借助近场通信(NFC)技术,为用户提供了一种快速、直观的视频分享体验。本文将深入剖析碰一碰发视频功能的源码开发过程,涵盖从…...
基于 AI智能体、大模型、RAG、Agent 等技术构建公司内部闭环智能问答系统的详细方案,结合 Spring Boot + Vue 管理系统 的改造思路
以下是基于 AI智能体、大模型、RAG、Agent 等技术构建公司内部闭环智能问答系统的详细方案,结合 Spring Boot Vue 管理系统 的改造思路: 1. 系统架构设计 核心组件 数据源层 内部文档库:公司知识库(如操作手册、FAQ、流程文档&a…...
红宝书第三十四讲:零基础学会单元测试框架:Jest、Mocha、QUnit
红宝书第三十四讲:零基础学会单元测试框架:Jest、Mocha、QUnit 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、单元测试是什么? 就像给代码做“体检”,帮你检查…...
视觉分析AI赋能智慧水务多场景应用
利用视觉分析的方式智慧水务的AI算法方案 一、背景 在传统水务监管中,面临着诸多痛点。例如,对于河道污染、水面异常、河湖四乱问题以及水生态环境差等情况,传统监管效率低下,预警不及时,资源分散,监控功…...
网络2 IP与MAC IP地址
IP地址与MAC地址 一 1.关系: 网卡有唯一的物理地址:MAC地址,IP是配置在网卡上的逻辑地址。 IP地址、MAC地址是进行网络通信必不可少的 2.MAC地址是物理地址,不可更改,通常与IP地址绑定 3.MAC地址:48位 IP地…...
spark-Core
运行架构 核心组件 由上图可以看出,对于 Spark 框架有两个核心组件: Driver,Spark 驱动器节点 其中Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。 Driver 在 Spark 作业执行时主要…...
前端开发中的问题排查与定位:HTML、CSS、JavaScript(报错的解决方式)
目录 1.html 1. 结构错误调试:标签未正确嵌套 2. 语法问题调试:缺失引号 3. 断点调试:动态生成内容时的 JavaScript 错误 4. 网络调试:资源加载错误 5. 性能调试:页面加载性能 总结: 2.CSS 1. 定位…...
VMware Fusion Pro 13 for Mac虚拟机
VMware Fusion Pro 13 for Mac虚拟机 文章目录 VMware Fusion Pro 13 for Mac虚拟机一、介绍二、效果下载 一、介绍 VMware Fusion Pro for Mac,是一款mac虚拟机软件,跟Parallels Desktop一样,都可以让你的 Mac 同时运行一个或多个不同的操作…...
使用cline(VSCode插件)、continue(IDEA插件)、cherry-studio玩转MCP
安装环境 uv(python) 为什么不用pip? 使用 uv 时无需进行特定安装。使用 uvx 直接运行。 ⚡️ 比pip快10-100x https://github.com/pypa/pip https://ossinsight.io/analyze/pypa/pip?vsastral-sh%2Fuv#overview 安装 https://github…...
Kotlin FragmentTransaction多容器管理多个fragment
在Activity中管理五个Fragment的切换显示和隐藏,并且希望将这部分逻辑进行封装。之前已经教过他们如何在Kotlin中使用FragmentTransaction进行基本的添加、隐藏、显示和替换操作,现在需要进一步封装这些操作,提高代码的可维护性和复用性。 管…...