【Linux】Linux权限管理详解

news2025/5/20 19:56:24

🌱博客主页:青竹雾色间

🌱系列专栏:Linux

😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
在这里插入图片描述

目录

  • 1. Linux权限概念
  • 2. 文件访问者分类
    • a) 文件和目录的访问者:
    • b) 文件类型和访问权限
  • 3. 文件权限值的表示方法
    • a) 字符表示方法
    • b) 8进制数值表示方法
  • 4. 文件访问权限的设置方法
    • a) chmod
      • i) 用户符号+/-=权限字符
      • ii) 三位8进制数字
    • b) chown
    • c) chgrp
    • d) umask
      • 示例
    • e) sudo分配权限
      • (1) 修改/etc/sudoers 文件分配文件
      • (2) 使用 sudo 调用授权的命令
  • 5. 目录的权限
  • 6. 粘滞位
  • 7. 关于权限的总结


Linux作为一种多用户、多任务的操作系统,合理的权限管理显得尤为重要。本文将详细介绍Linux权限的概念、不同类型的权限、权限设置以及相关命令。

1. Linux权限概念

在Linux系统下,有两种主要的用户:超级用户(root)和普通用户。

  • 超级用户(root)
    • 可以在Linux系统下进行任何操作,拥有最高权限,不受限制。
    • 命令提示符为#
  • 普通用户
    • 在Linux下拥有有限的权限。
    • 命令提示符为$

2. 文件访问者分类

在这里插入图片描述

a) 文件和目录的访问者:

  1. 文件和目录的所有者:u - User(文件所有者,通常是文件创建者)
  2. 文件和目录的所有者所在的组的用户:g - Group(文件所有者所在的用户组)
  3. 其他用户:o - Others(系统中除了文件所有者和所在组的其他用户)

b) 文件类型和访问权限

  • 文件类型

    • d:文件夹
    • -:普通文件
    • l:软链接(类似Windows的快捷方式)
    • b:块设备文件(例如硬盘、光驱等)
    • p:管道文件
    • c:字符设备文件(例如屏幕等串口设备)
    • s:套接口文件
  • 基本权限

    • 读(r/4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    • 写(w/2):对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    • 执行(x/1):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    • “-”:表示不具有该项权限

3. 文件权限值的表示方法

a) 字符表示方法

  • 权限表示
    • r:读权限
    • w:写权限
    • x:执行权限

b) 8进制数值表示方法

  • 权限表示
    • r:4
    • w:2
    • x:1

4. 文件访问权限的设置方法

a) chmod

  • 功能:设置文件的访问权限
  • 格式chmod [参数] 权限 文件名
  • 常用选项
    • R:递归修改目录文件的权限

i) 用户符号+/-=权限字符

  • u 表示用户

  • g表示用户组

  • o表示其它

  • a表示所有

  • +:向权限范围增加权限代号所表示的权限

  • -:向权限范围取消权限代号所表示的权限

  • =:向权限范围赋予权限代号所表示的权限

示例

chmod a+x a.txt #给所有用户给予a.txt文件可执行权限
chmod o-x a.txt #其它用户取消执行a.txt文件的权限

ii) 三位8进制数字

示例

chmod 764 a.txt # 111(rwx) 110(rw-) 100(r--)   

b) chown

  • 功能:修改文件的拥有者
  • 格式chown [参数] 用户名 文件名

示例

chown user1 f1

c) chgrp

  • 功能:修改文件或目录的所属组
  • 格式chgrp [参数] 用户组名 文件名
  • 常用选项-R 递归修改文件或目录的所属组

示例

chgrp users /abc/f2

d) umask

  • 功能:查看或修改文件掩码

  • 格式umask 权限值

在 Linux 系统中,umask(用户文件创建掩码)是一个非常重要的概念,它影响着用户创建新文件和目录时的默认权限设置。凡是在umask中出现的权限,不会在最终的文件权限中存在。

权限掩码的工作原理
Linux 文件系统的权限由三组构成:所有者(owner)、组(group)和其他(others)。每组可以拥有读(read, r)、写(write, w)和执行(execute, x)权限。

umask 的值是一个八进制数,它与文件的默认权限相结合,以确定新文件或目录的实际权限。默认情况下,新文件的权限通常是 666(可读可写),新目录的权限通常是 777(可读可写可执行)。umask 值中的每一位都与默认权限相减,从而得到最终的权限。

常见 umask 值及其含义

新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是:最终权限=起始权限&(~ unmask)

  • umask 022:这是默认设置,意味着新文件默认权限为 644,新目录的默认权限为 755
  • umask 002:相比 022,这个设置允许组和其他用户也能写入新创建的文件和目录,文件默认权限为 664,目录默认权限为 775

如何使用 umask
要查看当前的 umask 值,只需在终端输入 umask 命令。要设置新的 umask 值,可以使用如下格式:

umask [权限值]

例如,要设置 umask044,可以输入:

umask 044

之后再次输入 umask 命令,可以查看到新设置的值。

示例

以下是如何使用 umask 命令的示例:

umask 044  # 设置新的umask值
umask      # 查看当前的umask值

通过合理配置 umask,可以提高系统的安全性,防止新文件或目录被默认设置为过于开放的权限。

e) sudo分配权限

(1) 修改/etc/sudoers 文件分配文件

  • 格式接受权限的用户登陆的主机 =(执行命令的用户) 命令

(2) 使用 sudo 调用授权的命令

示例

sudo -u 用户名 命令
sudo -u root /usr/sbin/useradd u2

5. 目录的权限

  • x-可执行权限:如果目录没有可执行权限,则无法cd到目录中。
  • r -可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容。
  • w-可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。

6. 粘滞位

为了解决普通用户可以删除其他用户文件的问题,Linux引入了粘滞位的概念。

  • 当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由:
    1. 超级管理员删除
    2. 该目录的所有者删除
    3. 该文件的所有者删除
      ps:t是特殊的x权限

示例

chmod +t /home/ # 加上粘滞位

7. 关于权限的总结

  • 目录的可执行权限:表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录。
  • 目录的可读权限:如果目录没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,仍然没有权限读出目录下的文档。

示例

chmod 0777 /home/
chmod 740 /etc/sudoers

在Linux系统下,合理的权限管理是系统安全的关键。通过本文的介绍,相信您对Linux权限管理有了更深入的了解。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux的磁盘分区,格式化,挂载

1.需要提前添加几个磁盘,以做实验 2.把nvme0n2磁盘用来分区实验 3.分了一个主分区,和一个扩展分区(扩展分区是不能使用的,所以又在扩展分区里分了一个逻辑分区)分区的大小自己定义 4.格式化分出来的区,这…

xgp怎么注册阿根廷账号 微软商店xgp阿根廷账号注册教程

xgp怎么注册阿根廷账号 微软商店xgp阿根廷账号注册教程 xgp游戏平台是微软公司针对pc用户开发的一款游戏平台,在平台内有着知名的月包服务,玩家们只需每个月支付固定的费用,即可免费玩到不同的游戏大作,xgp平台也正是由月包服务…

1.C++入门(下)

目录 1.引用和指针 2.内联函数 2.1 概念: 2.2 特性: 2.3 与宏对比 3.auto关键字 3.1 简介: ​3.2 使用: 3.3 局限 4.基于范围的for循环 1.引用和指针 因为这个面试中常考,就接着上一篇,把这个放…

Linux 底软开发——对CAN的详细操作(周期发送,异常检测,过滤报文)

Linux底软开发—对CAN发送接收详细操作 文章目录 Linux底软开发—对CAN发送接收详细操作1.保证多条CAN数据发送的周期性2.解析CAN报文数据3.CAN总线异常机制应对4.对CAN报文进行过滤操作5.完整的接收报文代码(过滤,心跳检测,解析)…

刚刚,百度真来炸场了!

文章目录 前言再看文心智能体开发工具:AgentBuilderAI原生应用开发工具:AppBuilder各种尺寸的模型定制工具:ModelBuilder结语 前言 不知道大家还记得不,去年 ChatGPT 火遍全球的时候,国内率先推出 AI 大模型的是百度家…

【热门话题】AI作画算法原理解析

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 AI作画算法原理解析AI作画算法概述基础原理:机器学习与深度学习卷积…

再谈C语言——理解指针(四)

assert断⾔ assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。 assert(p ! NULL); 上⾯代码在程序运⾏到这⼀⾏语句时,验证变量 p 是否等于 NULL 。…

基于Kepware的Hadoop大数据应用构建-提升数据价值利用效能

背景 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它允许用户在不需要深入了解分布式底层细节的情况下,开发分布式程序。Hadoop充分利用集群的威力进行高速运算和存储,特别适用于处理超大数据集。 Hadoop的生态系统非常丰富&…

【如何使用chrome开发者工具调试javascript代码】

创作背景 平常开发时我们去解决bug可能会用console.log来来调试,但是断点可以更快地完成工作。 log调试的劣势:但是使用console.log时需要我们手动的打开源码,找到相关代码,插入log语句,然后重新加载页面&#xff0c…

【MySQL】数据库操作指南:数据类型篇

🌱博客主页:青竹雾色间 🌱系列专栏:MySQL探险日记 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ✨人生如寄,多忧何为 ✨ 文章目录 1. 数值类型1.1 tinyint 类型1.2 bit 类型1.3 小数类型1.3.1 f…

屏幕状态自动检测+鼠标自动操作

目录 一、写在前面 1.1适用场景 1.2涉及到的库 二、函数库 2.1pyautogui-屏幕截图&鼠标操作 2.1.1屏幕截图screenshot函数 2.1.2鼠标移动及单击 2.2Opencv-模板匹配 2.2.1matchTemplate函数 2.2.2minMaxLoc函数 2.2.3相关代码 2.3base64-图片转base64 2.3.1在线…

顺序表的应用-通讯录

顺序表的应用-通讯录 1.操作2.功能要求2.1.功能要求2.2.思路小结2.3.文件梳理2.4.代码实现"SeqList.h""Contact.h""SeqList.c""Contact.c""test.c" 1.操作 链接: 顺序表专题 这篇文章介绍了顺序表的概念与基本操作。 本文将…

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓

54位大咖演讲精华! 中国生成式AI大会圆满收官,TOP50企业榜单揭晓© 由 红板报 提供 智东西4月19日报道,为期两天的2024中国生成式AI大会,今日在京圆满收官。 54位产学研投嘉宾代表全程干货爆棚,报名咨询人数逾52…

机械臂模型更换成自己的urdf模块

1.将urdf生成slx文件 smimport(rm_65_flange.urdf);%生成Simscape物理模型 2.更换joint部分(对应与几个输入几个输出)(依次更换) 3.更改关节部分(依次更换) 找到urdf文件夹下的meshes文件夹,看…

python爬虫 - 爬取 json 格式数据(股票行情信息:雪球网,自选股)

文章目录 1. 第一步:安装requests库2. 第二步:获取爬虫所需的header和cookie3. 第三步:获取网页4. 第四步:解析网页5. 第五步:解析 json 结构数据体6. 代码实例以及结果展示 python爬虫五部曲: 第一步&…

Window + Ubuntu 双系统无Ubuntu Bios 启动项

文章目录 安装硬盘位置不重要!!!(但是我安装在了第二张HDD)问题是多盘分位置会导致磁盘主分区变成了简单卷 Bios Ubuntu 启动项修复参考Ubuntu安装U盘进入Try Ubuntu 使用Terminal修复完提示Disable Secure Boot进入Te…

sublime运行编译C和Java

1.先安装终端 参照以下教程 如何在 Sublime 文本编辑器中使用终端?_sublime终端窗口怎么打开-CSDN博客 可能遇到的问题:有些sublime text3可能并没有显示“package control”。这个问题对于笔者来说是有些吊诡的,因为之前一开始安装时是能…

echarts 堆叠柱状图 顶部添加合计

堆叠有3个,后面加了一个对象显示顶部的数据, 其实主要的代码还是在series 的第四项,需要注意的是 series的第四项中的data需要为 data: [0, 0, 0] 顶部的统计才能显示出来 增加的代码如下 {name: 综合,type: bar,stack: total,label: {sh…

tcp inflight 守恒算法的几何解释

接上文:tcp inflight 守恒算法背后的哲学 在 tcp inflight 守恒算法正确性 中,E bw / srtt 的公平最优解是算出来的,如果自然可以用数学描述,那能算出来的东西反过来也一定能通过直感看出来,我倾向于用几何和力学描述…

Linux 深入理解Linux文件系统与日志分析

在Linux系统中,文件名和文件数据是分开存储的 文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据 文件元信息存储在 inode(索引节点)里, 文件实际数据存储在 block(块)里; 文件名存储在目录块里 查看文件的元信息 stat 文件名 [ro…