[Linux]文件系统权限与访问控制

news2024/11/18 17:39:12

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的同时自己也得到复习。
⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁

目录

  • 1、文件系统权限和访问控制的重要性
  • 2、常见命令
  • 3、权限类型
  • 4、权限设置和管理
  • 5、基本权限和归属
  • 6、特殊权限
  • 7、ACL权限
  • 8、思考题
  • 9、总结

Linux文件系统的权限和访问控制是系统安全的关键组成部分之一。
本文将深入探讨Linux文件系统权限和访问控制的重要性、权限类型以及如何设置和管理文件系统权限。

1、文件系统权限和访问控制的重要性

  在Linux系统中,每个文件和目录都有一个所有者和一组访问权限。这些权限用于限制用户对文件和目录的访问和操作,以保护系统和数据的安全性。如果没有正确的权限设置和访问控制,用户可能会访问和更改他们没有权限访问的文件和目录,从而导致系统和数据的损坏或泄漏。

2、常见命令

命令说明
chmod修改文件或目录的权限
chown修改文件或目录的所有者
chgrp修改文件或目录的所属组
ls列出当前目录下的文件和子目录
id显示当前用户的用户ID和组ID
umask设置新创建文件的默认权限
sudo以超级用户身份运行命令
su切换用户身份
passwd修改用户密码
useradd添加新用户
usermod修改用户属性
groupadd添加新组
groupmod修改组属性

在这里插入图片描述

3、权限类型

Linux文件系统的权限分为三个主要类型:

  1. 用户权限:文件和目录的所有者对文件和目录有特定的访问权限,包括读、写和执行权限。
  2. 组权限:文件和目录的所属组对文件和目录也有特定的访问权限,包括读、写和执行权限。用户可以属于多个组。
  3. 其他用户权限:除了所有者和所属组之外的所有其他用户都属于其他用户,也有一组特定的访问权限,包括读、写和执行权限。

4、权限设置和管理

  使用chmod命令更改权限:chmod命令是用于更改文件和目录权限的最常用命令之一。使用chmod命令可以更改文件和目录的读、写和执行权限。例如,chmod 755 filename将文件filename的所有者设置为可读、写和执行,所属组和其他用户设置为可读和执行。

  使用chown命令更改文件所有者:chown命令用于更改文件和目录的所有者。例如,chown user filename将文件filename的所有者更改为用户user。

  使用chgrp命令更改文件所属组:chgrp命令用于更改文件和目录的所属组。例如,chgrp groupname filename将文件filename的所属组更改为组groupname。

  使用umask命令设置默认权限:umask命令用于设置新文件和目录的默认权限。例如,umask 022将设置新文件的默认权限为644,新目录的默认权限为755。

5、基本权限和归属


权限管理命令
1、更改文件或目录权限命令: chmod
2、改变文件或目录所有者命令: chown
3、改变文件或目录所属组命令: chgrp
4、显示、设置文件的默认权限命令:umask

在Linux文件系统中,每个文件和目录都有一个所有者和一个所属组,并且设置了一组基本权限。
这些权限控制了谁能访问该文件或目录以及他们可以执行的操作。
文件和目录的基本权限通常用3个数字表示,每个数字代表一个不同的用户组:所有者、所属组和其他用户。

基本权限包括读、写和执行权限,分别用数字4、2和1表示。每个用户组可以使用这些数字来指定他们对文件或目录的访问权限。例如,如果一个文件设置了权限为644,那么它的所有者有读、写权限,所属组和其他用户只有读权限。

在这里插入图片描述

6、特殊权限

在这里插入图片描述
除了基本的文件权限和文件所有权之外,Linux文件系统还支持特殊权限,包括SetUID、SetGID和Sticky Bit。

权限类型对文件的影响
setUID文件执行时,以拥有者的权限执行
getUID文件执行时,以执行者的权限执行
Sticky Bit仅对目录起作用,只有文件所有者或超级用户可以删除该目录中的文件

  SetUID是一种特殊权限,可以设置在可执行文件上。
  当一个用户运行该文件时,该文件会以文件所有者的身份运行,而不是以运行用户的身份运行。这可以使某些程序在运行时获得更高的权限,例如运行passwd程序以更改用户密码。
  在默认情况下,SetUID仅适用于可执行文件,并且只对二进制文件有效。

  SetGID也是一种特殊权限,可以设置在目录上。当一个用户在该目录下创建文件或目录时,新创建的文件或目录将继承该目录的组所有权,而不是用户的组所有权。
  这可以使多个用户可以共享访问同一个目录或文件,而无需每个用户都设置相同的组所有权。

  Sticky Bit是另一种特殊权限,可以设置在目录上。当Sticky Bit被设置在一个目录上时,只有文件所有者和超级用户才能够删除该目录中的文件。
  这可以防止用户意外删除其他用户的文件。Sticky Bit通常被用于公共目录,例如/tmp,以确保文件仅被创建者或管理员删除。

以下是一个简单的图示,说明了文件权限和所有权的概念:
在这里插入图片描述

7、ACL权限

在这里插入图片描述
Access Control Lists(ACLs)是Linux文件系统的一种访问控制机制,允许在基本的文件权限之上为特定用户或组添加额外的权限。ACLs允许管理员在文件或目录上定义多个访问控制项,并赋予不同的用户或组不同的权限,从而提供更细粒度的访问控制。

ACLs是Linux扩展文件系统中的一种特性。支持ACL的文件系统包括ext3、ext4、XFS和ReiserFS等。ACLs由ACL条目组成,每个ACL条目包括一个或多个访问者、一个或多个访问权限,以及一个可选的默认访问权限。访问者可以是用户或组。

在使用ACL之前,需要确保文件系统已经挂载并且支持ACL。可以通过运行命令mount来检查文件系统是否挂载了ACL支持。如果支持ACL,文件系统选项中将会包含acl选项。

要添加ACL权限,可以使用setfacl命令。例如,下面的命令将为用户jane添加对文件/home/user/file.txt的读取和写入权限:

setfacl -m u:jane:rw /home/user/file.txt

这将创建一个新的ACL条目,将用户jane添加为访问者,并授予读取和写入权限。要查看文件的ACL权限,可以使用getfacl命令:

getfacl /home/user/file.txt

输出将包括基本权限和任何ACL权限。要删除ACL权限,可以使用setfacl命令的-x选项。例如,下面的命令将删除用户jane对文件/home/user/file.txt的ACL权限:

setfacl -x u:jane /home/user/file.txt

除了setfacl和getfacl命令,还有其他一些与ACL相关的命令。例如,chacl命令可以用于更改ACL权限,ls命令可以用于显示文件的ACL权限等等。

需要注意的是,ACLs是一个强大的工具,但也很容易被误用。过度使用ACLs可能导致混乱的权限结构,难以维护和管理。因此,在使用ACLs时,需要仔细考虑哪些用户或组需要哪些访问权限,并尽量保持权限结构的简单性和一致性。

8、思考题

假设test1,test2,test3同属于testgroup组,请说明下面两个文件的所有者及相关用户的权限?

-rw-r–r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 exam.txt

对于第一个文件 “test.txt”,所有者为 root 用户,所属组也是 root 组。权限位是 “-rw-r–r–”,依次表示所有者、所属组和其他用户对该文件的读、写、执行权限。因此,所有者 root 用户对该文件具有读写权限,所属组和其他用户只有读取权限。
对于第二个文件 “exam.txt”,所有者为 test1 用户,所属组为 testgroup 组。权限位是 “-rwxr-xr–”,依次表示所有者、所属组和其他用户对该文件的读、写、执行权限。因此,所有者 test1 用户对该文件具有读、写、执行权限,所属组 testgroup 组的用户对该文件具有读、执行权限,其他用户只有读取权限。

有以下目录,请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?

drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/

对于这个目录 “groups”,所有者是 test1 用户,所属组是 testgroup 组,权限位是 “drwxr-xr–”。因此,所有者 test1 用户可以进入该目录,并访问其中的文件,因为他拥有读取目录的权限。所属组 testgroup 的用户也可以进入该目录,并访问其中的文件,因为他们拥有该目录的读取和执行权限。而其他用户(others)则不能进入该目录,因为他们没有该目录的执行权限。

如果有些文件你不希望被其他人看到,那么应该将文件的权限设定为?
可以将该文件的权限设置为只有你自己的用户可以读、写和执行,而其他用户则没有权限。可以使用命令 “chmod” 来修改文件的权限。这样设置权限后,其他用户就无法看到该文件,但是管理员用户仍然可以访问该文件,因为管理员用户拥有最高权限

drwxr–r-- 3 root root 4096 Jun 25 08:35 .ssh 用户whj能否切换到该目录?
该目录的权限位是 “drwxr–r–”。由于该目录的所有者为 root 用户,所属组也是 root 组,因此:所有者 root 用户对该目录有读、写和执行权限;所属组 root 组的用户只对该目录有读权限;其他用户对该目录没有任何权限。因此,用户 “whj” 不能切换到该目录,因为他没有该目录的执行权限。

⑤假设有个账号名称为whj,家目录在/home/whj/,whj对此目录具有[rwx]的权限。若在此目录下有个名为root.data的文件,该文件的权限如下

-rwx------ 1 root root 4365 Sep 19 23:20 root.data

请问whj对此文件的权限为何? 可否删除此文件?
由于该文件的所有者为 root 用户,所属组也是 root 组,因此:所有者 root 用户对该文件具有读、写和执行权限;所属组 root 组的用户没有任何权限;其他用户也没有任何权限。因此,用户 “whj” 对该文件没有任何权限,不能读取、写入或者执行该文件,也不能删除该文件。

9、总结

  在Linux系统中,文件系统的权限和访问控制对系统和数据的安全至关重要。
  通过正确设置和管理文件和目录的权限,可以确保用户只能访问他们被授权访问的文件和目录,从而保护系统和数据的安全。
  熟练掌握Linux文件系统权限和访问控制的知识,是每个Linux系统管理员必备的技能之一。

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

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

相关文章

Docker 安装

系列文章目录 文章目录 系列文章目录前言一、Docker 安装地址?二、常用命令1. 基础命令2. docker 镜像命令 三、安装步骤1.卸载原有环境2.安装对应的依赖环境和镜像地址3. 安装过慢设置镜像4. 直接安装docker CE5. 启动docker服务6. 查看docker的版本7. 配置阿里云的…

改进YOLOv8 | 主干网络篇 | YOLOv8 更换骨干网络之 SwinTransformer | 《基于位移窗口的层次化视觉变换器》

论文地址:https://arxiv.org/pdf/2103.14030.pdf 代码地址:https://github.com/microsoft/Swin-Transformer 本文介绍了一种新的视觉Transformer,称为Swin Transformer,它可以作为计算机视觉通用的骨干网络。从语言到视觉的转换中,适应Transformer所面临的挑战源于两个领…

112页智慧城市大数据综合解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 项目必要性分析 完善信息基础设施布局规划,满足区域信息化的发展要求 信息化已成为提升城市管理、促进经济发展、改善民生的重要手段合理高效的部署宽带信息基础…

亚马逊美国站纽扣电池标准

近日,亚马逊美国站公布要求卖家需遵守扭电池和硬币电池的新包装和警示标签规定公告。 在亚马逊销售单独的纽扣电池和硬币电池,则从2023年3月2日开始,您需要证明您的符合儿童安全包装和警告标签要求。 适用产品有;单独的纽扣电池或硬币电池&a…

FPGA基础知识 LCMXO3LF-6900C-6BG400I FPGA可编程逻辑简介

FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定…

ThinkPHP模型操作下

ThinkPHP模型操作下 前言1. 模型设置1.name(数据表除去前后缀的名字,默认是当前model的类名)2.table(完整的数据表名)3.pk 改变主键名称4.schema 设置模型对应数据表字段及类型5.disuse 数据表废弃字段(数组)6.模型的其他属性 2. 模型的主要功…

从零搭建MySQL监控平台(mysql-exporter+Prometheus+Grafana)

文章目录 一、软件安装二、 软件配置配置mysql_exporter配置prometheus配置Grafana 本文是我自己在Macbook上本地从零开始搭建一套MySQL监控平台,监控的也是我本机的MySQL,过程包括prometheus、mysql_exporter、Grafana的配置与下载。 一、软件安装 我是…

像素(物理像素dp、逻辑像素dip、物理像素 / 逻辑像素drp)

1、像素 px实际是pixel(像素)的缩写,它是图像显示的基本单元,既不是一个确定的物理量,也不是一个点或者小方块,而是一个抽象概念。 一个个的小格子被定义为一个单位,叫做 像素 ,2像…

【Android Framework (八) 】- Service

文章目录 知识回顾启动第一个流程initZygote的流程system_serverServiceManagerBinderLauncher的启动AMS 前言源码分析1.startService2.bindService 拓展知识1:Service的两种启动方式对Service生命周期有什么影响?2:Service的启动流程3:Service的onStartCommand返回…

国内直接使用的ChatGTP

ChatGTP都能做一些什么事: 回答问题:我可以通过自然语言处理技术来回答用户的问题,提供有用的信息和解决方案。 聊天互动:我可以和用户聊天互动,倾听对话和提供支持。 搜索:我可以搜索互联网和已知的数据…

宠物领养系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87708775 更多系统资源库…

Word行距怎么设置?基础设置,必会的4个方法!

案例:Word行距怎么设置 【各位朋友,谁知道Word行距怎么设置呀?今天写文章时,感觉所有文字都挤在一起,非常不美观,想调一下行距,在线等一个简单的方法!】 Word作为打工人和学生党必…

多种内网穿透的实现方案

1. 内网穿透的应用场景 1.1. 开发调试 比如企业微信、钉钉等开发,需要一个回调地址,开发的时候,希望回调到开发的电脑上,打断点进行调试,这就需要穿透到内网的开发机器。 1.2. 演示测试 有需要演示或测试的系统&am…

Kubeadm方式搭建K8s集群【1.26.0版本】

文章目录 一、集群规划及架构二、系统初始化准备(所有节点同步操作)三、安装并配置Containerd容器运行时四、安装kubeadm(所有节点同步操作)五、初始化集群六、Node节点添加到集群七、安装网络组件Calico八、测试CoreDNS解析可用性九、拓展1、ctr和crictl命令具体区别 一、集群…

【c++ 之 多态】

目录: 前言多态认识多态多态的定义与实现构成多态的条件虚函数1.协变(基类与派生类虚函数返回值不同)2.析构函数的重写c11.两个虚函数修饰关键字:final & override 重载、重写、重定义再理解 抽象类抽象类的概念接口继承与实现…

强大的JSON格式化和编辑工具zjson

本文软件应网友 小超 的需求而制作,软件本身已经 2年未更新,请知悉~ 什么是 zjson ? 转杰森(zjson) 是一个强大的 JSON 格式化和编辑工具,支持在线版和 Electron应用安装,使用 MEAN-STACK ( MongoDB Expr…

【ArcGIS】常见问题总结

1 arcgis如何打开*.adf文件 在处理数据时发现,获取到的土地利用类型数据有两个文件夹,一个叫info,另一个叫lucc2010(年份),打开lucc2010里面是一系列的*.adf文件,数据应该如何打开呢&#xff1…

Red Hat Enterprise Linux 9的简介

1.3 Red Hat Enterprise Linux 9的简介 2022年5月,红帽公司(Red Hat)发布了Red Hat Enterprise Linux 9.0(简称RHEL 9.0)正式版。Red Hat Enterprise Linux是全球领先的企业级Linux操作系统,已获得数百个…

重大剧透:你不用ChatGPT,它砸你饭碗

早晨看到路透社报道,盖茨说,与其争论技术的未来,不如专注于如何更好地利用人工智能。 这可能是他对马斯克他们呼吁暂停AI研发6个月的一种回应吧。 有种古语说:天下大势,浩浩汤汤,顺之者昌,逆之者…

ai模型训练生成效果 chilloutmix_NiPrunedFp32Fix.safetensors

模型名称: chilloutmix_NiPrunedFp32Fix.safetensors 关键词 extremely detailed CG unity 8k wallpaper,(masterpiece),(best quality),(ultra detailed),(ultra realistic),(Best character details:1.2),dynamic angle,professional lighting, photon mapping, …