当前位置: 首页 > article >正文

Linux 权限管理入门:从基础到实践

文章目录

  • 引言
  • 一、Linux 权限管理概述
  • 二、文件权限值的表示方法
  • 三、文件访问权限的设置(chmod)
  • 四、file指令:快速识别文件类型
  • 五、目录的权限
  • 六、普通文件的权限
  • 七、权限总结
  • 八、粘滞位

引言

在 Linux 系统中,权限管理是确保多用户环境下文件和目录安全的核心机制。无论是普通用户还是系统管理员,理解权限概念都至关重要。本文将带你从零开始,逐步掌握 Linux 权限的核心知识,包括权限表示、设置方法、目录权限等,帮助你快速上手。

一、Linux 权限管理概述

  1. 权限的作用
    Linux 通过权限控制不同用户对文件和目录的访问权限(读、写、执行),确保:

    • 所有者:文件 / 目录的创建者,拥有最高控制权。
    • 组用户:同一用户组内的成员,权限由组设置决定。
    • 其他用户:不属于上述两类的用户,权限通常更严格。

例如,/etc/shadow文件仅 root 用户可读写,普通用户无法访问,保障系统安全。

二、文件权限值的表示方法

  1. 字母与数字对应
权限字母数字含义
r4查看内容(文件)/ 列出目录(目录)
w2修改内容(文件)/ 创建删除文件(目录)
执行x1运行程序(文件)/ 进入目录(目录,如cd)
  1. 权限字符串结构

使用 ls -l 查看文件权限,例如:

drwxrwxr-x 4 zkp zkp 4096 Jun  2 22:05 a
  • 第一位 - 表示文件类型(d 为目录,l 为链接)。
  • 接下来三组(rwx, rwx, r-x)分别对应 所有者其他用户 的权限。
  1. 数字计算示例
    • 755 表示:所有者 rwx(7=4+2+1),组和其他 r-x(5=4+1)。
    • 644 表示:所有者 rw-(6=4+2),组和其他 r--(4)。

三、文件访问权限的设置(chmod)

  1. 数字方式
chmod 755 file.txt  # 所有者rwx,组和其他rx
chmod 600 file.txt  # 所有者rw-,组和其他无权限
  1. 符号方式
    • u(用户)、g(组)、o(其他)、a(所有):
chmod u+x file.txt  # 给所有者添加执行权限
chmod g-w file.txt  # 移除组的写权限
chmod o+rwx file.txt  # 给其他用户添加全部权限(谨慎使用!)
  1. 实战举例
# 创建文件,默认权限644(umask影响,可忽略)
touch test.txt
ls -l test.txt  # -rw-r--r--# 给所有用户添加执行权限(文件需可执行时用,如脚本)
chmod a+x test.txt  # -rwxr-xr-x

四、file指令:快速识别文件类型

file test.txt  # 输出:test.txt: ASCII text(文本文件)
file /bin/ls   # 输出:/bin/ls: ELF 64-bit executable(二进制可执行文件)
file /etc      # 输出:/etc: directory(目录)

通过file指令,可快速判断文件是否为脚本、二进制程序或目录,辅助权限设置(如脚本需x权限)。

五、目录的权限

  1. 目录权限的特殊规则

    • 读(r):ls 可列出目录内容,但无法 cd 进入(需x)。
    • 写(w):可在目录内创建、删除文件(即使文件属主不是你,只要目录有w权限)。
    • 执行(x):允许 cd 进入目录,是访问目录内容的前提(无x则ls也会报错)。
  2. 示例:公共目录权限

mkdir public_dir
chmod 777 public_dir  # 所有用户可读写执行(危险!测试用)
cd public_dir          # 成功(x权限)
touch file1            # 成功(w权限)
ls                     # 成功(r权限)

实际中,公共目录(如/tmp)会设置粘滞位(见下文),避免误删他人文件。

六、普通文件的权限

  1. 普通文件权限的作用
    普通文件(如文本文件、脚本、二进制程序等)的权限直接控制对文件内容的访问:

    • 读(r):查看文件内容(如 cat file.txt)。
    • 写(w):修改文件内容(如 echo "new line" >> file.txt)。
    • 执行(x):运行文件(如脚本 ./script.sh 或二进制程序 ./a.out)。
  2. 权限设置示例

(1)文本文件权限(644)

touch notes.txt
chmod 644 notes.txt  # 或 chmod u=rw,g=r,o=r notes.txt
ls -l notes.txt      # -rw-r--r-- (所有者rw,组和其他r)

(2)可执行脚本权限(755)

echo "#!/bin/bash\necho Hello" > script.sh
chmod 755 script.sh  # 所有者rwx(可修改、运行),组和其他rx(可运行,不可修改)
./script.sh          # 执行成功(需x权限)

(3)敏感文件权限(600)

echo "secret: 12345" > secret.conf
chmod 600 secret.conf  # 仅所有者可读写(如 `vim secret.conf` 可修改,`cat secret.conf` 可查看)
  1. 权限与文件类型的关联
    • 文本文件:通常不需要 x 权限(除非是脚本,需手动添加 x)。
    • 二进制程序:编译后默认可能有 x 权限(如 gcc 生成的可执行文件)。
    • 脚本文件:需手动添加 x 权限(如 chmod +x script.sh),否则无法直接运行(提示 “Permission denied”)。

七、权限总结

  1. 普通文件权限重点:
    • 644:最常见的文本文件权限(所有者 rw,组和其他 r)。
    • 755:可执行文件(如脚本、程序)的典型权限。
    • 避免给普通文件设置w权限(尤其是系统文件),防止意外修改。

八、粘滞位

粘滞位仅对目录有效,但影响目录内普通文件的删除规则:

  • 无粘滞位时,目录有w权限的用户可删除任何文件(即使文件属主不同)。
  • 有粘滞位时(如/tmp),用户只能删除自己的文件,保护他人数据。

相关文章:

Linux 权限管理入门:从基础到实践

文章目录 引言一、Linux 权限管理概述二、文件权限值的表示方法三、文件访问权限的设置(chmod)四、file指令:快速识别文件类型五、目录的权限六、普通文件的权限七、权限总结八、粘滞位 引言 在 Linux 系统中,权限管理是确保多用…...

Mycat的监控

参考资料: 参考视频 参考博客 Mysql分库分表(基于Mycat)的基本部署 MySQL垂直分库(基于MyCat) Mysql水平分表(基于Mycat)及常用分片规则 视频参考资料及安装包: https://pan.b…...

Glide源码解析

前言 Glide是一款专为Android设计的开源图片加载库。有以下特点:1.支持高效加载网络、本地及资源图片;2.具备良好的缓存策略及生命周期管理策略;3.提供了简易的API和强大的功能。本文将对其源码进行剖析。 基本使用 dependencies {compile …...

7.RV1126-OPENCV cvtColor 和 putText

一.cvtColor 1.作用 cvtColor 是 OPENCV 里面颜色转换的转换函数。能够实现 RGB 图像转换成灰度图、灰度图转换成 RGB 图像、RGB 转换成 HSV 等等 2.API CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn 0 ); 第一个参数:…...

Android 之 kotlin 语言学习笔记二(编码样式)

参考官方文档:https://developer.android.google.cn/kotlin/style-guide?hlzh-cn#whitespace 1、源文件命名 所有源文件都必须编码为 UTF-8。如果源文件只包含一个顶级类,则文件名应为该类的名称(区分大小写)加上 .kt 扩展名。…...

Redisson单机模式

redisson调用unlock的过程 Redisson 是一个基于 Redis 的 Java 驻内存数据网格(In-Memory Data Grid)框架,提供了分布式和可扩展的数据结构和服务。Redisson 的 unlock 方法用于释放锁。下面是 unlock 方法的调用过程: 获取锁的状…...

数据结构第6章 图(竟成)

第 6 章 图 【考纲内容】 1.图的基本概念 2.图的存储及基本操作:(1) 邻接矩阵法;(2) 邻接表法;(3) 邻接多重表、十字链表 3.图的遍历:(1) 深度优先搜索;(2) 广度优先搜索 4.图的基本应用:(1) 最小 (代价) 生…...

机器人现可完全破解验证码:未来安全技术何去何从?

引言 随着计算机视觉技术的飞速发展,机器学习模型现已能够100%可靠地解决Google的视觉reCAPTCHAv2验证码。这标志着一个时代的结束——自2000年代初以来,CAPTCHA("全自动区分计算机与人类的图灵测试"的缩写)一直是区分…...

CppCon 2014 学习:(Costless)Software Abstractions for Parallel Architectures

硬件和科学计算的演变关系: 几十年来的硬件进步:计算机硬件不断快速发展,从提升单核速度,到多核并行。科学计算的驱动力:科学计算需求推动硬件创新,比如需要更多计算能力、更高性能。当前的解决方案是并行…...

网络爬虫 - App爬虫及代理的使用(十一)

App爬虫及代理的使用 一、App抓包1. App爬虫原理2. reqable的安装与配置1. reqable安装教程2. reqable的配置3. 模拟器的安装与配置1. 夜神模拟器的安装2. 夜神模拟器的配置4. 内联调试及注意事项1. 软件启动顺序2. 开启抓包功能3. reqable面板功能4. 夜神模拟器设置项5. 注意事…...

Kafka集群部署(docker容器方式)SASL认证(zookeeper)

一、服务器环境 序号 部署版本 版本 1 操作系统 CentOS Linux release 7.9.2009 (Core) 2 docker Docker version 20.10.6 3 docker-compose docker-compose version 1.28.2 二、服务规划 序号 服务 名称 端口 1 zookeeper zookeeper 2181,2888,3888 2 ka…...

【python爬虫】利用代理IP爬取filckr网站数据

亮数据官网链接:亮数据官网...

群晖 NAS 如何帮助培训学校解决文件管理难题

在现代教育环境中,数据管理和协同办公的效率直接影响到教学质量和工作流畅性。某培训学校通过引入群晖 NAS,显著提升了部门的协同办公效率。借助群晖的在线协作、自动备份和快照功能,该校不仅解决了数据散乱和丢失的问题,还大幅节…...

NLP学习路线图(十八):Word2Vec (CBOW Skip-gram)

自然语言处理(NLP)的核心挑战在于让机器“理解”人类语言。传统方法依赖独热编码(One-hot Encoding) 表示单词,但它存在严重缺陷:每个单词被视为孤立的符号,无法捕捉词义关联(如“国…...

P1438 无聊的数列/P1253 扶苏的问题

因为这两天在写线性代数的作业,没怎么写题…… P1438 无聊的数列 题目背景 无聊的 YYB 总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的 YYB 想出了一道无聊的题:无聊的数列。。。 题目描述 维护一个数列 ai​,支持两种操…...

嵌入式学习笔记 - 新版Keil软件模拟时钟Xtal灰色不可更改的问题

在新版Keil软件中,模拟时钟无法修改XTAL频率,默认只能使用12MHz时钟。‌这是因为Keil MDK从5.36版本开始,参数配置界面不再支持修改系统XTAL频率,XTAL选项变为灰色,无法修改。这会导致在软件仿真时出现时间错误的问题&…...

k8s的出现解决了java并发编程胡问题了

Kubernetes(K8s)作为一种开源的容器编排平台,极大地简化了应用程序的部署、管理和扩展。这不仅解决了很多基础设施方面的问题,也间接解决了Java并发编程中的一些复杂问题。本文将详细探讨Kubernetes是如何帮助解决Java并发编程中的…...

如何利用大语言模型生成特定格式文风的报告类文章

在这个算法渗透万物的时代,我们不再仅仅满足于大语言模型(LLM)能“写”,更追求它能“写出精髓,写出风格”。尤其在专业且高度格式化的报告类文章领域,仅仅是内容正确已远远不够,文风的精准复刻才是决定报告是否“对味儿”、能否被目标受众有效接受的关键。这不再是简单的…...

黑马Java面试笔记之 集合篇(算法复杂度+ArrayList+)

一. 算法复杂度分析 1.1 时间复杂度 时间复杂度分析:来评估代码的执行耗时的 常见的复杂度表示形式 常见复杂度 1.2 空间复杂度 空间复杂度全称是渐进空间复杂度,表示算法占用的额外存储空间与数据规模之间的增长关系 二. 数组 数组(Array&a…...

【从0-1的HTML】第2篇:HTML标签

文章目录 1.标题标签2.段落标签3.文本标签brbstrongsubsup 4.超链接标签5.图片标签6.表格标签7.列表标签有序列表ol无序列表ul定义列表dl 8.表单标签9.音频标签10.视频标签11.HTML元素分类块级元素内联元素 12.HTML布局13.内联框架13.内联框架 1.标题标签 标题标签&#xff1a…...

从“Bucharest”谈起:词语翻译的音译与意译之路

在翻译中,面对地名、人名或新兴术语时,我们常常会遇到一个抉择:到底是“音译”,保留其原发音风貌,还是“意译”,让它意义通达? 今天我们以“Bucharest”为例,展开一次语言与文化的微…...

Nginx+Tomcat负载均衡

目录 Tomcat简介 Tomcat 的核心功能 Tomcat架构 Tomcat 的特点 Tomact配置 关闭防火墙及系统内核 Tomcar 主要文件信息 配置文件说明 案例一:Java的Web站点 案例二:NginxTomcat负载均衡、动静分离 Tomcat简介 Tomcat 是由 Apache 软件基金会&am…...

JVM——JVM中的字节码:解码Java跨平台的核心引擎

引入 在Java的技术版图中,字节码(Bytecode)是连接源代码与机器世界的黄金桥梁。当开发者写下第一行public class HelloWorld时,编译器便开始了一场精密的翻译工程——将人类可读的Java代码转化为JVM能够理解的字节码指令。这些由…...

【论文解读】ReAct:从思考脱离行动, 到行动反馈思考

认识从实践开始,经过实践得到了理论的认识,还须再回到实践去。 ——《实践论》,毛泽东 1st author: About – Shunyu Yao – 姚顺雨 paper [2210.03629] ReAct: Synergizing Reasoning and Acting in Language ModelsReAct: Synergizing Reasoning and…...

数据解析:一文掌握Python库 lxml 的详细使用(处理XML和HTML的高性能库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、lxml 概述1.1 lxml 介绍1.2 安装和第一个案例1.3 性能优化技巧二、XML处理2.1 解析XML2.2 访问元素2.3 遍历XML树2.4 修改XML2.5 写入XML三、HTML处理3.1 解析HTML3.2 XPath查询3.3 CSS选择器四、高级功能4.1 使用命…...

react native webview加载本地HTML,解决iOS无法加载成功问题

在react native中使用 “react-native-webview”: “^13.13.5”,加载HTML文件 Android: 将HTML文件放置到android/src/main/assets目录,访问 {uri: file:///android_asset/markmap/index.html}ios: 在IOS中可以直接可以直接放在react native项目下,访问…...

简单配置RHEL9.X

切换默认运行级别 将系统默认启动模式从多用户的图形界面调整为多用户的文本界面,适用于优化系统资源占用或进行远程服务器管理的场景。 注意:安装选择“带GUI的服务器”部分常用命令默认安装;如果选择“最小安装”时,部分常用命…...

默认网关 -- 负责转发数据包到其他网络的设备(通常是路由器)

✅ 默认网关概括说明: 默认网关(Default Gateway)是网络中一台负责转发数据包到其他网络的设备(通常是路由器)。当一台主机要访问不在本地子网内的设备时,会将数据包发给默认网关,由它继续转发…...

python调用硅基流动的视觉语言模型

参考: https://docs.siliconflow.cn/cn/userguide/capabilities/vision import base64 import json from openai import OpenAI from PIL import Image import io# 初始化OpenAI客户端 client OpenAI(api_key"sk-**********", # 替换为实际API密钥b…...

下载并运行自制RAG框架

项目部署 https://github.com/huangjia2019/rag-project01-framework git clone https://github.com/huangjia2019/rag-project01-framework.git 一 、 前端分部分部署 在 Ubuntu 系统 上安装 Node.js 和 npm(Node Package Manager),并初始…...