Linux实操篇-权限管理

news2025/3/31 5:30:13

目录

  • 传送门
  • 前言
  • 一、权限管理概念
  • 二、权限管理实战
      • 1. Linux文件权限模型
        • 1.1 文件的三种基本权限
        • 1.2 权限的三类主体
      • 2. 查看文件权限
      • 3. 修改文件权限
        • 3.1 使用符号方式修改权限
        • 3.2 使用数字方式修改权限
      • 4. 特殊权限
        • 4.1 SUID(Set User ID)
        • 4.2 SGID(Set Group ID)
        • 4.3 Sticky Bit
      • 5. 用户与组管理
        • 5.1 创建和管理用户与组
        • 5.2 修改文件所有者和所属组
      • 6. 权限的继承和访问控制
      • 7. 总结

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。

以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇

一、权限管理概念

在这里插入图片描述
在这里插入图片描述
里面的6的单位是字节,6个字节,目录大小默认是4096字节
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、权限管理实战

Linux的权限管理系统是确保系统安全和资源访问控制的核心部分。它允许系统管理员管理用户、组、以及他们对文件和目录的访问权限。理解和配置这些权限对于保护数据、确保正确的访问控制非常重要。以下是关于 Linux 权限管理 的详细介绍:

1. Linux文件权限模型

在Linux中,每个文件或目录都有与之关联的权限,控制哪些用户或用户组可以读取、写入或执行该文件。Linux的文件权限模型基于三类权限和三类用户。

1.1 文件的三种基本权限
  • 读(r):允许查看文件内容或列出目录内容。
  • 写(w):允许修改文件内容或在目录中添加、删除文件。
  • 执行(x):允许执行文件(对于可执行文件)或进入目录。
1.2 权限的三类主体

权限被分配给以下三类主体:

  • 所有者(User/Owner):文件的拥有者。
  • 所属组(Group):文件属于的用户组。
  • 其他用户(Others):文件所属组和所有者之外的所有其他用户。

每个主体(所有者、组、其他用户)可以分别对文件执行读、写、执行操作。

2. 查看文件权限

使用 ls -l 命令可以查看文件的权限。例如:

ls -l file.txt

输出示例:

-rw-r--r-- 1 alice staff 4096 Dec 17 10:20 file.txt

解析:

  • -rw-r--r--:文件权限。
    • -:文件类型(- 表示普通文件,d 表示目录)。
    • rw-:所有者(alice)有读、写权限。
    • r--:组(staff)有读权限。
    • r--:其他用户有读权限。
  • 1:硬链接的数量。
  • alice:文件的所有者。
  • staff:文件的用户组。
  • 4096:文件大小。
  • Dec 17 10:20:文件的修改时间。

3. 修改文件权限

Linux提供了 chmod 命令用于修改文件的权限,支持两种方式:符号方式和数字方式。

3.1 使用符号方式修改权限

使用符号方式时,可以通过 r(读)、w(写)、x(执行)来表示权限,使用 +(添加权限)、-(去除权限)和 =(指定权限)来修改权限。

例如:

  • 给文件所有者添加写权限:
    chmod u+w file.txt
    
  • 给文件所属组去掉执行权限:
    chmod g-x file.txt
    
  • 只给所有者设置读权限:
    chmod u=r file.txt
    
  • 给所有用户添加执行权限:
    chmod a+x file.txt
    
3.2 使用数字方式修改权限

数字方式使用三个数字表示文件的权限,每个数字表示不同的主体(所有者、组、其他用户)权限的组合:

  • r(读)= 4
  • w(写)= 2
  • x(执行)= 1
  • -(无权限)= 0

每个数字代表所有者、组、其他用户的权限。例如:

  • 7(读+写+执行)= 4 + 2 + 1
  • 6(读+写)= 4 + 2
  • 5(读+执行)= 4 + 1
  • 4(读)= 4

例如:

  • 给文件 file.txt 设置所有者具有读、写、执行权限,组具有读、执行权限,其他用户只有读权限:
    chmod 755 file.txt
    
  • 给文件 file.txt 设置所有者具有读、写权限,组和其他用户没有权限:
    chmod 600 file.txt
    

4. 特殊权限

除了基本的权限(读、写、执行)外,Linux还有三种特殊权限,分别是 SUID、SGID 和 Sticky Bit。

4.1 SUID(Set User ID)

SUID 权限允许程序在执行时以文件所有者的身份运行,而不是执行程序的用户的身份。SUID 主要用于可执行文件。

设置 SUID 权限:

chmod u+s <文件名>

查看 SUID 权限:

ls -l <文件名>

如果文件设置了 SUID,权限字段会显示为:

-rwsr-xr-x 1 root root 12345 Dec 17 10:00 myprogram

其中,rws 中的 s 表示 SUID 权限。

4.2 SGID(Set Group ID)

SGID 权限使得程序在执行时,以文件所属组的身份运行,或者对于目录,文件会继承目录的组。

设置 SGID 权限:

chmod g+s <文件名或目录名>

查看 SGID 权限:

ls -l <文件名>

如果文件设置了 SGID,权限字段会显示为:

-rwxr-sr-x 1 root root 12345 Dec 17 10:00 myprogram

对于目录,SGID 设置后,目录中的新文件会继承该目录的组。

4.3 Sticky Bit

Sticky Bit 是一种特殊权限,通常用于目录。它确保只有文件的所有者、目录的所有者和超级用户可以删除或重命名目录中的文件。

设置 Sticky Bit 权限:

chmod +t <目录名>

查看 Sticky Bit 设置:

ls -ld <目录名>

如果目录设置了 Sticky Bit,权限字段会显示为:

drwxrwxrwt 7 root root 4096 Dec 17 10:00 /tmp

5. 用户与组管理

5.1 创建和管理用户与组
  • 创建用户

    sudo useradd <用户名>
    
  • 创建组

    sudo groupadd <组名>
    
  • 删除用户

    sudo userdel <用户名>
    
  • 删除组

    sudo groupdel <组名>
    
5.2 修改文件所有者和所属组
  • 修改文件的所有者:

    sudo chown <新所有者> <文件名>
    
  • 修改文件的所属组:

    sudo chgrp <新组> <文件名>
    
  • 同时修改文件的所有者和所属组:

    sudo chown <新所有者>:<新组> <文件名>
    

例如:

sudo chown john:admin file.txt

6. 权限的继承和访问控制

  • 默认权限:新创建的文件和目录通常会继承父目录的权限,并根据文件类型设置适当的权限。
  • ACL(Access Control Lists):ACL 是一种扩展的权限控制机制,允许细粒度地设置文件和目录的访问控制。

7. 总结

Linux的权限管理系统非常强大,可以通过基本的文件权限、用户、组、特殊权限以及 ACL 控制来确保系统的安全性。管理员可以灵活地管理哪些用户可以读取、修改和执行文件,从而保护敏感数据,防止未授权访问。理解和正确配置权限是维护 Linux 系统安全的核心技能。

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

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

相关文章

阿里开源的免费数据集成工具——DataX

企业里真实的数据流转是什么样子的呢&#xff1f; 左侧描述了一个企业真实的样子&#xff0c;我们总是需要把数据从一个地方搬到另一个地方&#xff0c;最后就是搬来搬去搬成了一张张解不开的网。 右侧则表达了使用DataX为中心实现数据的同步。 什么是DataX DataX是一个异构…

【前端】使用 HTML、CSS 和 JavaScript 创建一个数字时钟和搜索功能的网页

文章目录 ⭐前言⭐一、项目结构⭐二、HTML 结构⭐三、CSS 样式⭐四、JavaScript 功能⭐五、运行效果⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#xff08;,NET/Java/Python/C&#xff09;、数…

地理信息可视化技术大全【WebGIS 教程一】

前言&#xff1a; 在当今数据驱动的时代&#xff0c;地理信息技术&#xff08;GIS&#xff09;和空间数据可视化已成为科学研究、商业决策和智慧城市建设的重要工具。随着Web技术的快速发展&#xff0c;基于浏览器端的地图渲染和地理信息处理能力显著增强&#xff0c;各类开源与…

SLAM十四讲【四】相机与图像

SLAM十四讲【四】相机与图像 SLAM十四讲【一】基本概念 SLAM十四讲【二】三维空间刚体运动 SLAM十四讲【三】李群与李代数 SLAM十四讲【四】相机与图像 SLAM十四讲【五】线性优化 SLAM十四讲【六】视觉里程计 SLAM十四讲【七】回环检测 SLAM十四讲【八】建图 文章目录 SLAM十四…

类和对象-运算符重载-C++

1.加号运算符重载 1.成员函数重载调用 函数的定义部分&#xff08;这里的person是返回值类型&#xff0c;不是说构造函数&#xff09; class person { public:person operator(person& p){person temp;temp.a this->a p.a;temp.b this->b p.b;return temp;}in…

2000-2019年各省地方财政耕地占用税数据

2000-2019年各省地方财政耕地占用税数据 1、时间&#xff1a;2000-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、地方财政耕地占用税 4、范围&#xff1a;31省 5、指标说明&#xff1a;耕地占用税是地方财政的一种税收&…

从零到一开发一款 DeepSeek 聊天机器人

AI聊天机器人 目标设计方案系统架构技术选型功能模块 实现代码环境配置安装依赖 核心代码API 请求函数主循环函数 功能扩展1. 情感分析2. 多语言支持3. 上下文记忆4. 用户身份识别 总结附录 目标 开发一个智能聊天机器人&#xff0c;旨在为用户提供自然、流畅的对话体验。通过…

S32K144外设实验(五):FTM周期中断

文章目录 1. 概述1.1 时钟系统1.2 实验目的 2. 代码的配置 1. 概述 1.1 时钟系统 FTM的CPU接口时钟为SYS_CLK&#xff0c;在RUN模式下最高80MHz。模块的时钟结构如下图所示。 从上图中可以看出&#xff0c;FTM模块的功能时钟为SYS_CLK&#xff0c;计数器的时钟源可以来源于三…

Android 静态壁纸设置实现方案

提示&#xff1a;Android 平台&#xff0c;静态壁纸实现方案 文章目录 需求&#xff1a;Android 实现壁纸 设置场景 参考资料实现方案直接调用系统 API,WallpaperManager 来实现 wallpaperManager.setResource系统源码分析系统app WallpaperPickerWallpaperPickerActivity ->…

在计算进程D状态持续时间及等IO的时间遇到的一处问题

一、背景 之前的博客 线程每次iodelay监控及D状态开始和结束监控并做堆栈记录-CSDN博客 里&#xff0c;我们讲到了通过内核模块抓取D状态的进程和等IO事件的方法&#xff0c;里面也用到了通过获取rq的symbol&#xff0c;再去获取rq里的rq_clock_task时间的方法&#xff08;内核…

Android11-12-13 替换系统默认壁纸

替换默认壁纸&#xff0c;是客需中再普通不过的需求&#xff0c;这里整理作为笔记记录 文章目录 需求场景 关联资料需求实现拓展总结 需求 客制化客户壁纸需求&#xff0c;替换客户定制的壁纸。 场景 手机-平板相关产品&#xff0c;各种广告机、工控、消费级产品&#xff0c…

Buffer overFolw---Kryo序列化出现缓冲区溢出的问题解决

问题&#xff1a; 由于我的数据量太大&#xff0c;我设置批次为10000万&#xff0c;50w数据大概有400M左右&#xff0c;然后进行spark数据处理时候报错为org.apache.spark.SparkException:Kryo serialization failed:Buffer overFolw.Available:0,rquired 58900977,To …

【Linux】线程基础

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.背景知识02.线程概念简单使用线程线程调度成本更低 01.背景知识 OS进行内存管理&#xff0c;不是以字节为单位的&#xff0c;而是以内存块为单位的&#xff0c;默认大小为4kb&…

「宇树科技」13家核心零部件供应商梳理!

2025年2月6日&#xff0c;摩根士丹利&#xff08;Morgan Stanley&#xff09;发布最新人形机器人研报&#xff1a;Humanoid 100: Mapping the Humanoid Robot Value Chain&#xff08;人形机器人100&#xff1a;全球人形机器人产业链梳理&#xff09;。 2025年2月20日&#xf…

Spring Boot 项目打包运行

打包成jar包&#xff0c;执行 java -jar 包名&#xff1b; 保证打出的jar包是独立可运行的包&#xff0c;需要xml中添加插件配置 <!-- SpringBoot应用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId&…

数据结构八股

线性数据结构 数组:数组的内存空间是连续的&#xff0c;随机访问的时间复杂度是01&#xff0c;适用于需要按索引访问元素的场景&#xff0c;但是插入和删除元素较慢&#xff0c;时间复杂度是On链表:链表是由节点组成&#xff0c;节点之间是分散存储的&#xff0c;内存不连续&a…

7.2 控件和组件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 C#工具箱位于编辑窗口的左侧&#xff0c;它默认内置了大量的控件和组件。控件一般派生于System.Windows.Forms.Control类&#xff0c;显…

transform

http://zhihu.com/question/445556653/answer/3254012065 西科技的文章 视频讲解 小白也能听懂的 transformer模型原理详解 self- attention 多头注意力机制 encoder decoder 机器翻译_哔哩哔哩_bilibili

思库拉水厂开业庆典千人大会回顾

近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…

JAVA学习*Object类

Object类 Object类是所有类的父类 类中有一些方法&#xff08;都需要掌握&#xff09; toString()方法 在学习类的对象的时候有介绍过了&#xff0c;当我们重新给此方法就会打印类与对象的信息 equals()方法 在Java中的比较&#xff0c; 如果左右两侧是基本类型变量&#…