【Linux】Linux权限管理详解

🌱博客主页:青竹雾色间

🌱系列专栏: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.mzph.cn/diannao/2936.shtml

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

相关文章

安装VCenter 7 对硬件资源的需求

安装VMware vCenter Server 7.x 对硬件资源的需求主要包括以下方面: 服务器硬件: 处理器:64位 x86架构,推荐采用多核CPU以支持高并发管理和运行多个虚拟机。具体数量取决于vCenter Server将管理的虚拟机规模及复杂度。内存&#x…

第四百七十七回

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

K-近邻算法的 sklearn 实现

实验目的与要求 掌握基于 K-近邻分类算法的编程方法通过编程理解 K-近邻分类算法和该算法的基本步骤 实验器材 硬件:PC 机(参与实验的学生每人一台)软件环境:Python3.7 Pycharm 实验内容 使用 sklearn 库中的 neighbors 模块实…

idrac管理界面报错:RAC0508: 发生意外错误。

在idrac服务器-服务模块,看到如下报错信息: RAC0508: 发生意外错误。 等待几分钟然后刷新页面。 如果问题仍然存在,请联系服务提供商。 经查询,还是不知道是啥问题。 经查询,发现可能是数据库方面的报错,不…

xgp怎么取消续费 微软商店xgp会员取消自动续费详细教程

xgp怎么取消续费 微软商店xgp会员取消自动续费详细教程 XGP这个游戏平台小伙伴们并不陌生吧,它是微软Xbox游戏部门推出的游戏租赁制会员服务,主要用于主机和PC两个平台。这个平台的会员就可以免费享受多款大制作游戏,而且每个月还会自动更新…

Java中的运算符

运算符是用于数学函数、一些特殊的赋值语句和逻辑比较方面的特殊符号。 赋值运算符(“”) 赋值运算符是一个二元运算符(即对两个操作数进行处理),功能是将右侧的操作数赋值给左侧的操作数。 int a 100; 该表达式就…

KeyguardBouncer的显示流程

开机会调用其show方法吗? 不会 锁屏界面滑动 java.lang.NullPointerException: Attempt to invoke virtual method int java.lang.String.length() on a null object referenceat com.android.systemui.statusbar.phone.KeyguardBouncer.show(KeyguardBouncer.java…

李廉洋:4.24-4.25现货黄金,WTI原油区间震荡,走势分析。

黄金消息面分析:金银近日回调。随着伊朗方面淡化以色列最新反击,中东地区局势没有进一步发酵下,风险溢价下降金银出现较大幅度调整。由于近期高于预期的通胀数据,降息预期持续降温。昨日疲软的美国PMI以及以色列在加沙攻击的加剧支…

宽字符的来历:从ASCII到Unicode,C语言中的宽字符处理

目录 一、ASCII编码:字符世界的开篇 二、Unicode与宽字符的诞生 宽字符类型与宽字符串 三、C语言中的宽字符处理函数 四、宽字符与多字节字符 结语 在计算机科学的发展历程中,字符编码经历了从简单到复杂、从单一语言到全球多语种支持的演变过程。…

【大模型应用极简开发入门(2)】GPT模型简史:从GPT-1到GPT-4:从小数据量的微调到大数据量的强化学习不断优化模型

文章目录 一. GPT-1:无监督与微调1. 在GPT-1之前的监督学习的问题2. GPT-1中新的学习过程-无监督的预训练3. 复杂任务下的微调4. GPT-1为更强大的模型铺平了道路 二. GPT-2:context learning1. 核心思想:context learning2. GPT-2的数据集 三…

Simulink从0搭建模型03-Enabled Subsystem 使能子系统

参考博客 b站视频 【Simulink 0基础入门教程 P4 使能子系统 Enabled Subsystem 的使用介绍】 个人听了这个博主的视频风格觉得很适合我入门学习,讲得很清楚。 另外,视频里面教得很详细了,我也不会再详细写怎么打开创建等步骤,跟着…

2024 证券从业资格证考试备考资料分享

2024 证券从业资格证考试备考资料分享 2024 年 06月1、2日 证券从业资格考试全国统一考试(统考),预计将于5月初(考前一个月)左右开启报名 有没有小伙伴在准备备考的,不知道大家都准备怎么学习呢&#xff…

233 基于matlab的多通道非负矩阵分解(MNMF)算法

基于matlab的多通道非负矩阵分解(MNMF)算法。其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件VW*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。使用EM准则对混合信号进行分解。程序已调通,可直接运行。 233 多通道非…

SQL基础学习

一. SQL基础 1. SQL简介 SQL 是用于访问和处理数据库的标准的计算机语言。 1.1 什么是 SQL? SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 ANSI 的标准计算机语言 **编者注:**ANSI,美国国家标准化组织 1.2 SQL 能做什么&…

SpringBoot项目 nohup启动运行日志过大问题

如下SpringBoot启动命令 nohup java -Xmx2048m -Xms2048m -jar springboot-demo.jar >>./log.los 2>&1 &使用这条命令启动会导致日志文件和jar包同级,并且随着日积月累,越来越大。最终撑爆目录。 临时解决办法 如果日志已经撑爆了你…

面试被刷,原因居然是不会Git

大家好,我是知微! 假设你是一个刚入行的菜狗程序员,正在开发一个软件。 现在老板需要你加一些功能,此时的你有一些担忧,如果对代码进行大刀阔斧的改动,最终却失败了。之前能正常运行的代码也被改得乱七八糟…

C语言-结构体基本概念2.0

结构体成员引用 结构体是一种集合,内部包含了多个独立的成员,每个成员都可以被单独引用。通过成员引用符 . 可以简单地访问结构体的各个成员。 示例 n.a 200; n.b y; n.c 2.22; printf("%d, %c, %lf\n", n.a, n.b, n.c); 结构体指针与数组…

NOIP2018 普及组 T4 对称二叉树

文章目录 题目传送门算法解析总代码提交记录尾声 题目传送门 洛谷 P5018 [NOIP2018 普及组] 对称二叉树 算法解析 本题 DFS 剪枝可过!!! 输入左儿子右儿子时如果遇到 − 1 -1 −1 就把它设为 0 0 0,这样好判断。 输入函数…

布隆过滤器简介

布隆过滤器(Bloom Filter)是一种空间效率高、查询效率快的数据结构,用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和位数组来实现。 布隆过滤器原理: 位数组(Bit Array)&#xf…

【力扣 Hot100 | 第六天】4.21(字母异位词分组)

9.字母异位词分组 9.1题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例一: 输入: strs ["eat", "tea", "tan&quo…