首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

深入解析 Linux 文件权限

  • 25-03-04 13:21
  • 3509
  • 8471
blog.csdn.net

个人主页:chian-ocean

文章专栏

前言

在Linux系统中,文件和目录的权限是确保系统安全和管理访问控制的关键。权限控制决定了谁能够访问和操作哪些文件或目录。在Linux中,权限主要分为三个部分:文件所有者(User)、文件所属组(Group)以及其他用户(Others)。以下是对Linux权限的详细讲解
在这里插入图片描述

Linux中的用户类型

**超级用户(Root 用户):**Root 用户是系统管理员,具有系统中最高的权限,可以执行任何操作

普通用户:普通用户创建后通常没有系统管理权限,拥有对自己创建的文件和目录的控制权。

普通用户切换root用户

要从普通用户切换到 root 用户,可以使用以下命令:

su -
  • 1

然后输入 root 用户的密码。成功后,您将切换到 root 用户的环境。

如果您没有 root 用户密码,但有 sudo 权限,可以用以下命令来执行 root 权限的命令:

sudo su -
  • 1

这将允许您切换到 root 用户,无需单独的 root 密码,只需输入您当前用户的密码即可。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

sudo

sudo: 在 Linux 系统中,sudo 是一个用来以超级用户权限(即 root 权限)执行命令的工具.

sudo(全称是“superuser do”)是 Unix 和 Linux 系统中用于以超级用户权限(root 权限)执行命令的工具。sudo 可以临时授予普通用户执行系统管理任务的权限,不必切换到 root 用户,保证系统安全性和灵活性。

为什么使用 sudo

使用 sudo 有助于:

  1. 提高安全性:允许普通用户执行特定管理任务,而不暴露 root 用户的密码。
  2. 权限控制:通过 sudoers 文件,可以精细控制不同用户可以执行哪些命令。
  3. 记录管理操作:sudo 会将所有命令记录在日志文件中,方便审计和排查问题。

将普通用户加入到root白名单

普通用户想要可以运用sudo指令是需要得到root管理身份信任的。

vim /etc/sudoers
  • 1

在这里插入图片描述

Linux 权限管理

在 Linux 系统中,每个文件和目录都属于一个用户和一个组,并有各自的权限设置:

  • 用户(User):拥有文件的用户,一般是文件的创建者。
  • 组(Group):多个用户可以属于同一个组,组内用户共享权限。
  • 权限(Permissions):分为三种基本权限——读、写、执行。

权限的三类分配对象

每个文件和目录的权限被分配给三类对象:

  1. 文件属主(Owner/User):创建文件的用户。
  2. 文件属组(Group):与文件关联的用户组。
  3. 其他用户(Others):不属于文件属主和属组的其他所有用户。

权限类型

文件和目录权限可以按以下类型分配:

  • 读(r):允许查看文件内容或列出目录内容。
  • 写(w):允许修改文件或创建、删除、重命名目录中的文件。
  • 执行(x):允许执行文件(可执行文件)或访问目录内容。

在 Linux 中,权限用三个字符表示(如 rwx),分别表示读、写、执行权限。如果某个权限缺失则用 - 表示,例如 rw- 表示有读写权限但没有执行权限。

文件类型

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件
-rw-rw-r-- 1 ocean ocean  102 Nov 12 22:50 code.cpp
  • 1

在这里插入图片描述

权限的两种更改方式

符号模式更改权限

在符号模式下,权限更改的方式如下:

  • +:添加权限
  • -:移除权限
  • =:设置特定权限(覆盖原有权限)
# 给文件属主添加执行权限
chmod u+x filename

# 移除属组的写权限
chmod g-w filename

# 设置其他用户的权限为只读(覆盖其他权限)
chmod o=r filename

# 给所有用户添加读权限
chmod a+r filename
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 三类对象均不可执行,仅仅可以读和写 现在进行上述操作

在这里插入图片描述

八进制模式更改权限

八进制模式通过数值来表示权限,每位数字对应三种权限的组合。每个数字表示不同的权限组合:

权限数字解释
---0无权限
--x1只有执行权限
-w-2只有写权限
-wx3写和执行权限
r--4只有读权限
r-x5读和执行权限
rw-6读和写权限
rwx7读、写和执行权限

八进制模式的使用方式为:chmod XYZ filename,其中 X 表示属主的权限,Y 表示属组的权限,Z 表示其他用户的权限

将所三个对象有权限设置为—

在这里插入图片描述

将所三个对象有权限设置为rwx

在这里插入图片描述

权限所属对象的更改

在 Linux 中,可以通过 chown 和 chgrp 命令更改文件或目录的权限所属对象。具体来说:

  • chown 用于更改文件的属主和属组。
  • chgrp 用于更改文件的属组。
chown [选项] 用户:组 文件名

chown newuser filename

chgrp newgroup filename
  • 1
  • 2
  • 3
  • 4
  • 5

在root下操作

在这里插入图片描述

在普通用户操作

在这里插入图片描述

umak掩码

当用户在 Linux 系统中创建一个文件或目录时,系统会先根据默认权限(文件通常为 666,目录为 777)创建文件或目录,然后再根据 umask 的值移除对应权限位。

在这里插入图片描述

这里面为什么是:775 和 664 ?

umask工作原理

umask 值由四个数字组成,每个数字控制特定用户类别的权限:

  • 第一位通常保留(设为 0)。
  • 第二位控制文件属主权限。
  • 第三位控制文件属组权限。
  • 第四位控制其他用户权限。
[ocean@hcss-ecs-ad93 test]$ umask
0002
# linux系统下默认的umask掩码是002 
  • 1
  • 2
  • 3

计算新创建文件或目录的权限:

  • 文件默认权限:666(没有执行权限)
  • 目录默认权限:777

权限计算公式:

  • 文件权限 = 默认权限 666 &(~umask) 掩码 = 774
  • 目录权限 = 默认权限 777 &(~umask) 掩码 = 664

目录权限

目录权限的三种类型

  1. 读权限 ®:

    • 读权限 (r) 允许用户查看目录中的文件和子目录列表。
    • 没有读权限时,用户无法列出目录内容。

    在这里插入图片描述

  2. 写权限 (w):

    • 写权限 (w) 允许用户在目录中创建、删除和重命名文件和子目录。
    • 注意:写权限一般与执行权限 (x) 搭配使用。仅有写权限但没有执行权限的情况下,用户无法实际在目录中进行操作(如删除或创建文件)。

    在这里插入图片描述

  3. 执行权限 (x):

    • 执行权限 (x) 允许用户进入目录,即“访问”该目录。
    • 没有执行权限时,用户无法切换到该目录,甚至无法查看目录中的文件,即便拥有读权限。
    • 在目录权限中,执行权限非常关键,它影响了用户对该目录内容的可操作性。

在这里插入图片描述

粘滞位

在 Linux 中,粘滞位(Sticky Bit)是一种特殊的权限位,通常用于目录中。粘滞位主要用于公共目录,确保只有文件的属主或 root 用户才能删除或修改该文件,即使其他用户对该目录具有写权限

粘滞位的作用

当一个目录设置了粘滞位后,目录中的文件和子目录只能被以下用户删除或修改:

  1. 文件的属主(文件的创建者)
  2. 目录的属主
  3. 系统管理员(root 用户)

使用场景

粘滞位常用于公共目录(如 /tmp),因为 /tmp 目录允许所有用户写入数据,但为了避免用户删除他人的文件,通常会设置粘滞位。

设置粘滞位

使用 chmod 命令可以设置粘滞位:

  1. 符号模式:

    chmod +t directory_name
    
    • 1

    在这里插入图片描述

  2. 八进制模式:粘滞位的八进制值是 1000,可以在其他权限基础上加上 1000。

    chmod 1777 directory_name
    
    • 1

    例如,设置 /tmp 目录的权限为 1777,即所有用户均有完全权限,但仅文件属主可以删除自己的文件。

式**:

chmod +t directory_name
  • 1

[外链图片转存中…(img-WPqjYhpW-1731563326066)]

  1. 八进制模式:粘滞位的八进制值是 1000,可以在其他权限基础上加上 1000。

    chmod 1777 directory_name
    
    • 1

    例如,设置 /tmp 目录的权限为 1777,即所有用户均有完全权限,但仅文件属主可以删除自己的文件。

在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览20768 人正在系统学习中
注:本文转载自blog.csdn.net的chian-ocean的文章"https://blog.csdn.net/Cayyyy/article/details/143769201"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top