【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 模块实…

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

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

Java中的运算符

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

李廉洋: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 多通道非…

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

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

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

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

电商技术揭秘三十二:智能风控的案例研究与未来趋势

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

stable diffusion webui 使用 SDXL模型

可以去c站上下载别人处理好的模型,从liblib里下载也可以 DreamShaper XL 将下载好的模型复制到/models/Stable-diffusion目录下,webui的界面里选择加载模型 测试了一下,需要注意的是这三个选项 采样器必须设置为DPM SDE Karras &#xf…

spring高级篇(三)

1、Spring选择代理 1.1、Aspect和Advisor 在Spring框架中,"Aspect" 和 "Advisor" 是两个关键的概念,它们都与AOP(面向切面编程)密切相关: 如果要在Spring中定义一个Aop类,通常会&…

STM32H7的LCD控制学习和应用

STM32H7的LCD控制 LTDC基础硬件框图LTDC时钟源选择LTDC的时序配置LTDC背景层、图层1、图层2和Alpha混合LTDC的水平消隐和垂直消隐LCD的DE同步模式和HV同步模式的区别区分FPS帧率和刷新率避免LTDC刷新撕裂感的解决方法 驱动示例分配栈的大小MPU和Cache配置初始化SDRAM初始化LCD应…

使用IOPaint实现图片擦除路人

IOPaint 是一个免费的开源的 inpainting/outpainting 工具,由最先进的 AI 模型提供支持。 IOPaint 中使用各种模型来修改图像: 擦除:删除任何不需要的物体、缺陷、水印、人物。修复:对图像的特定部分进行修改、添加新对象或替换…

vcontact2:病毒聚类(失败)

Bitbucket 安装 mamba create --name vContact2 biopython1.78 mamba install -c bioconda vcontact20.11.3vim ~/envs/vContact2/lib/python3.9/site-packages/vcontact2/exports/summaries.py 把 np.warnings.filterwarnings(ignore) 改成 import warnings warnings.filte…

Java虚拟机类加载机制详细总结

1、概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 2、类加载的时机 一个类型从被加载到虚拟机内存中开始&#xff…