当前位置:首页 » 《随便一记》 » 正文

深入解析 Linux 文件权限

8 人参与  2024年12月10日 10:00  分类 : 《随便一记》  评论

点击全文阅读


个人主页:chian-ocean

文章专栏

前言

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

Linux中的用户类型

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

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

普通用户切换root用户

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

su -

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

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

sudo su -

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

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

sudo

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

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

为什么使用 sudo

使用 sudo 有助于:

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

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

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

vim /etc/sudoers

在这里插入图片描述

Linux 权限管理

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

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

权限的三类分配对象

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

文件属主(Owner/User):创建文件的用户。文件属组(Group):与文件关联的用户组。其他用户(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

在这里插入图片描述

权限的两种更改方式

符号模式更改权限

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

+:添加权限-:移除权限=:设置特定权限(覆盖原有权限)
# 给文件属主添加执行权限chmod u+x filename# 移除属组的写权限chmod g-w filename# 设置其他用户的权限为只读(覆盖其他权限)chmod o=r filename# 给所有用户添加读权限chmod a+r filename

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

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

在这里插入图片描述

八进制模式更改权限

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

权限所属对象的更改

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

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

在root下操作

在这里插入图片描述

在普通用户操作

在这里插入图片描述

umak掩码

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

在这里插入图片描述

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

umask工作原理

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

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

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

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

权限计算公式

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

目录权限

目录权限的三种类型

读权限 ®

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

在这里插入图片描述

写权限 (w)

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

在这里插入图片描述

执行权限 (x)

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

在这里插入图片描述

粘滞位

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

粘滞位的作用

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

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

使用场景

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

设置粘滞位

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

符号模式

chmod +t directory_name

在这里插入图片描述

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

chmod 1777 directory_name

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

式**:

chmod +t directory_name

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

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

chmod 1777 directory_name

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

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/198954.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1