Linux系统控制文件和目录权限

news2024/11/18 11:34:31

0.前言

并非操作系统的每个用户都应具有相同级别的文件和目录访问权限,与任何专业操作系统一样,Linux具有保护文件和目录访问的方法。系统允许系统管理员(root用户或文件所属用户)通过赋予用户读取,写入或执行文件的权限来保护其文件免受不必要的访问或篡改。对于每个文件和目录,我们可以为文件所属用户、同组用户以及其他用户指定权限状态,这在多用户操作系统中是必要的。

1.多类型用户

Linux下用户分为3类:超级用户(root)、系统用户、普通用户。

在Linux系统中,root用户非常强大,基本上可以执行任何操作。系统上的其他用户拥有有限的权限,不可能具有root用户具有的所有访问权限。将具有相似需求的用户放入被授予相关权限的组中,该组的每个成员都会继承组权限。这主要是为了便于管理权限,从而确保安全性。

在默认情况下,root用户是root组的一部分。必须将系统上的每个新用户添加到组中才能继承改组的权限。

2.赋予权限

必须为每个文件和目录分配使用它的不同身份的特定级别的权限。

三个级别的权限如下:

r 读权限 赋予用户打开与查看权限

w 写权限 赋予用户查看与编辑写入权限

x 执行权限 赋予用户执行一个文件

通过这种方式,root用户可以通过需要的权限向其他用户赋予一定级别的权限。创建文件时,通常创建文件的用户是文件的所有者,用户组是用户的当前组。该文件的所有者可以授予各种访问权限。

3.赋予个人用户权限

将文件的所有权转移到其他用户以便他们能够控制权限,我们可以使用chown(更改文件所属用户)

命令。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

在这里,我们给出命令,将目录/tmp/bobsfile及其下面的所有文件的所属用户改为bob的所属用户。

4.赋予用户组权限

要将文件的所有权从一个组转移到另一个组,我们可以使用chgrp(更改组)命令。chgrp命令用来改变文件或目录所属的用户组。仅限文件属主与root使用。

此命令将newIDS的所属用户主改为security。

5.检查权限

如果要查找为文件或目录的哪些用户授予的权限,请使用ls -l命令来显示显示不被隐藏的所有文件与文件夹的详细信息,并成列表显示。

我们获取有关内容的信息:

文件类型

所有者,组和用户的文件权限

链接数量

文件所属用户

文件的大小(以字节为单位)

文件创建或上次修改时间

文件名

其中第一个字符为文件类型,其中d(dirtectory)代表目录,短划线(-)则说明文件是个普通文件。下一节则定义文件的权限,有三组三个字符组成,r(read),w(write),x(execute)。其中rwx代表所有者的权限,r-x代表用户所在组的权限,—代表其他用户权限。

如果首先看到r,则该用户或用户组都有权打开和读取该文件或目录。作为中间字母w代表者可以写入(修改)文件或目录,最后的x代表者可以执行文件或目录。如果用短划线(-)替换任何r,w或x,就代表未给出相应的权限。请注意,用户只能执行二进制文件或脚本权限。

示例:

-表示他是一个普通文件,权限rw-代表文件所属用户具有读写权限但没有执行权限。下一组r–表示文件所属组,显示该组既有读取权限但不具有写入和执行权限。最后一组r–其他用户也只有读取权限但不具有写入和执行权限。

这些权限不是一成不变的。作为root用户和文件所属用户可以更改权限。

6.改变用户权限

我们可以使用linux命令chmod来更改权限。只有root用户或文件所属用户才能更改权限。我们使用两种不同的方法来更改hashcat.hcstat的权限。

6.1十位权限改变法

我们可以使用单个数字来表示一个rwx权限集来引用权限。与操作系统下的所有内容一样,权限以二进制表示,因此ON和OFF开关分别由1和0表示。可以将rwx权限视为三个ON/OFF开关,因此当授予所有权限时,这相当于111的二进制。

这样的二进制集就很容易通过转换为八进制来表示一位数,八位数字以0开头并以7结尾。八进制数字表示一组三位二进制数字,这意味着我们可以表示整个rwx集用一位数字。

八进制和二进制权限表示:

我们来看一些例子。首先,如果我们只想设置读取权限,通过查询表并找到读取权限的值:

如果我们想要将权限设置为wx,我们可以使用相同的方法并查找设置w和x的权限:

4+2+1=7,在Linux中当所有权限都开启时,由八进制的值7表示。

因此,如果我们想要表示文件所属用户,同组用户和其他用户的所有权限,可以按照如下方式写:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FIO4F6ZJ-1690971592746)(https://image.3001.net/images/20210701/1625125225_60dd7169363ef21f42210.png!small)]

通过chmod三个八进制数字后跟随文件名,我们可以为每种类型的用户更改文件权限。在命令行中输入以下内容:

我们可以看到这个语句给了文件所属用户所有权限,同组用户的所有权限,其他用户只有读取权限。

现在我们可以通过在目录上运行ls -l 并查看hash.hcstat来查看这些权限是否已经更改。

这确认了chmod调用成功更改了文件的权限,让文件所属用户和同组用户能够执行该文件。

6.2UGO权限改变法

虽然数值方法可能是在Linux中更改权限最常用的方法,但有些人发现chmod的符号方法更直观,两种方法同样有效,所以只需找到合适你的方法。符号方法通常成为UGO语法,代表文件所属用户,同组用户,其他用户。

UGO语法非常简单,输入chmod命令,然后输入要更改权限的用户,为文件所属用户提供u,为同组用户提供g,为其他用户提供o,或者输入三个运算符之一:

- 移除一个权限

+ 添加一个权限

= 设置一个权限

在操作符之后,要添加或删除的权限(rwx),最后包含要指定文件名称。

因此,如果要删除文件所属用户对hashcat.hcstat所属文件的写入权限,可以输入以下内容:

此命令表示从文件所属用户(u)中删除(-)hashcat,hcstat的写入(w)权限。

现在,当再次使用ls -l检查权限时,可以看到hashcat.hcstat文件不再具有该文件所属用户的写入权限。

还可以使用一个命令更改多个权限。如果想要同时为文件所属用户,其他用户(不包括同组用户)赋予执行权限,可以输入以下内容:

此命令告诉Linux为hashcat.hcstat文件添文件所属用户的写入(w)权限以及其他用户的执行(x)权限。

7.给新文件赋予root权限

如果要经常下载新的工具,但Linux会自动分配所有文件和目录的默认权限666和777。这意味着,在默认情况下,你下载的文件将无法立即执行它。通常会得到一条信息,上面写着"Permission
denied"。对于这些情况,需要给自己一个root身份并执行,使用chmod执行文件的权限。

假设我们下载了一个名为Cypher.matrix的文件:

我们可以看到新文件没有任何人的执行权限,这使得无法操作。在默认情况下,Linux不允许执行下载的文件,但总体而言,此设置让你的系统更安全。

我们可以通过输入以下内容来允许自己执行Cypher.matrix:

现在,我们可以看到Cypher.matrix具有对文件所属用户的执行权限:

赋予了文件所属用户的所有权限,并赋予了同组用户和其他用户读写权限(4+2=6)。

8.赋予默认的安全级别权限

Linux自动分配基本权限,通过为文件666和目录777。你可以使用umask(或unmask)方法更改分配给每个用户创建的文件和目录的默认权限。umask方法表示要从文件或目录的默认权限中删除权限,以成为最终的默认权限值。

umask时对应于三个权限数字的三位八进制数字,从权限编号中减去umask编号以提供新的权限状态。这意味着当创建新文件或目录时,权限设置位默认值减去umask中的值。

例如,日过umask设置为022,则具有默认权限666的新文件现在将变为权限644,这意味着文件所属用户具有读取和写入权限(rwx),而同组用户和其他用户仅具有读取权限(rw)。

umask值对于系统上的所有用户都不是通用的。每个用户都可以为其个人.profile文件中的文件和目录设置个人默认的umask值。要以用户身份登录时查看当前属性值,只需输入命令umask并记下返回内容。如果你不想要这些默认的文件或目录属性,你可以通过修改/etc/bashrc里的内容来改变。

9.特别权限

除了三个通用权限rwx,Linux还有三个特殊权限,这些特殊权限时设置用户ID(或SUID),设置组ID(或SGID)和粘滞位。

9.1使用SUID赋予临时root权限

用户只有在有权执行该特定文件时才能执行该文件。如果用户只具有读取或写入权限,则无法执行。

你可能遇到过这样一种情况:文件在被所有用户(非root用户)执行期间都需要root用户的权限。例如,允许用户更改其密码的文件需要访问/etc/shadow(Linux中保存用户密码的文件),该文件需要root用户权限才能执行。在这种情况下,通过在程序上设置SUID,可能临时赋予所有者执行文件所需的特权。

基本上,SUID表示任何用户都可以使用所有者的权限来执行该文件,但这些权限不会超出使用该文件的范围。

要设置SUID,请在常规权限之前输入4,因此当设置SUID时,具有644的新结果权限的文件表示为4664。

9.2使用SGID赋予root同组用户权限

SGID赋予临时权限,但赋予的是同组用户的权限,而不是文件所属用户的权限。这意味着,设置SGID,如果用户属于有权执行该文件的组,没有执行权限的用户也可以执行文件。

应用于目录时,SGID的工作方式略有不同:当设置该目录时,在该目录中创建的新文件的所有权限将转到目录创建者的组,而不是文件创建者的组。当多个用户共享目录时,这方法非常有用。该组中的所有用户都可以执行文件,而不仅仅是单个用户。

SGID在常规权限之前表示为2,因此当设置SGID时,具有权限644的新文件将表示为2644。通用,你可以使用chmod命令。

9.3粘滞位

在以前旧的系统当中,如果一个程序文件一旦设置了粘滞位(粘着位),那么当该程序中止的时候他的所有指令段将被保存到系统的交换分区当中,再次运行时可以更快的调入系统。不过现在的操作系统已经不再使用这种功能了。但这并不表示这功能已经完全被废弃。

当一个目录设置为粘滞位(粘着位)时,它将发挥特殊的作用,即当一个目录被设置为"粘滞位(粘着位)"(用chmod
a+t),则该目录下的文件只能由超级管理员删除、该目录的所有者删除或该文件的所有者删除。也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。

总结

Linux使用权限可出于防御性目的来保护用户、组的文件和目录免受系统中其他用户的攻击,同样如何管理这些权限以及如何利用操作进行提权(特别是SUID和SGID)。

将发挥特殊的作用,即当一个目录被设置为"粘滞位(粘着位)"(用chmod
a+t),则该目录下的文件只能由超级管理员删除、该目录的所有者删除或该文件的所有者删除。也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。

总结

Linux使用权限可出于防御性目的来保护用户、组的文件和目录免受系统中其他用户的攻击,同样如何管理这些权限以及如何利用操作进行提权(特别是SUID和SGID)。

如果你对网络安全入门感兴趣,那么你点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(嘿客入门教程)

👉网安(嘿客)全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

img

👉网安(嘿客红蓝对抗)所有方向的学习路线****👈

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

img

学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

在这里插入图片描述

面试题资料

独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
在这里插入图片描述

👉嘿客必备开发工具👈

工欲善其事必先利其器。学习客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】

如果你有需要可以点击👉CSDN大礼包:《嘿客&网络安全入门&进阶学习资源包》免费分享

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

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

相关文章

生成对抗网络DCGAN学习

在AI内容生成领域,有三种常见的AI模型技术:GAN、VAE、Diffusion。其中,Diffusion是较新的技术,相关资料较为稀缺。VAE通常更多用于压缩任务,而GAN由于其问世较早,相关的开源项目和科普文章也更加全面&#…

如何在 Ubuntu 上部署 ONLYOFFICE 协作空间社区版?

ONLYOFFICE 协作空间是一个在线协作平台,帮助您更好地与客户、业务合作伙伴、承包商及第三方进行文档协作。今天我们来介绍一下,如何在 Ubuntu 上安装协作空间的自托管版。 ONLYOFFICE 协作空间主要功能 使用 ONLYOFFICE 协作空间,您可以&am…

Golang 函数参数的传递方式 值传递,引用传递

基本介绍 我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里我们再系统总结一下,因为这是重难点,值类型参数默认就是值传递,而引用类型参数默认就是引用传递。 两种传递方式(函数默认都…

MySQL数据库备份

目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 五、常见的备份方法 六、备份 一、概述 数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数…

以CS32F031为例浅说国产32位MCU的内核处理器

芯片内核又称CPU内核,它是CPU中间的核心芯片,是CPU最重要的组成部分。由单晶硅制成,CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口…

【C++】string类

目录 🌞专栏导读 🌛为什么学习string类? ⭐C语言中的字符串 🌛标准库中的string类 ⭐基本使用string ⭐string类的常用接口 ⭐总结: 🌛范围for的使用 🌞专栏导读 🌟作者简介…

docker更换数据存储路径

1. 先停掉docker服务 sudo systemctl stop docker 可能会出现的问题: 这样会导致docker关闭失败,解决办法:systemctl stop docker.socket 确保docker关闭: 2.备份现在的 Docker 数据存储目录 /var/lib/docker(默认路径) mv /var/lib/docker /var/lib/…

高斯函数的傅里叶变换与离散化频谱分析

1 高斯函数的傅里叶变换 主要参考自 http://www.cse.yorku.ca/~kosta/CompVis_Notes/fourier_transform_Gaussian.pdf 对于中心化的高斯函数,即 g ( x ) 1 2 π σ e − x 2 2 σ 2 , (1.1) g\left( x \right) \frac{1}{{\sqrt {2\pi } \sigma }}{e^{ - \frac{{{x…

【有趣的】关于Map的一些小测试

Map在代码中用到得非常多,它是无序的、key-value结构的,其读取会非常快。 今天看了个小文章Map判空 、空字符串、空key值等各种判断方法,你都掌握了吗?便自己也玩一下。 一、判空 因为对象已经new出来了,所以map指向的…

【洁洁送书第三期】人性的光辉,python之光

这里写目录标题 python学习现状python之光亮点python学习配套视频python之光目录强力推荐 python学习现状 作为生产力工具,Python是当今极为流行的编程语言。Python编程逐渐成为一项通用能力,从小学生到各个行业的从业人员都在学Python。Python确实能够…

高忆管理:多重利好共振 外资加码布局A股

资本商场活泼信号正在继续开释,内外资决心取得有力提振。以北向资金为代表的外资近来表现活泼,近六个买卖日已连续净买入超500亿元。多家外资组织近期表态称,伴跟着方针力度加强,我国经济有望继续复苏,活泼看好我国权益…

优思学院|质量工程师应具备什么能力?

质量工程师是一个需要耐心、细心、坚持态度、沟通能力、协调能力的工作,更需要持续学习强化自身的专业知识。 质量工程师负责审核、客户投诉的调查、过程的改进以达到质量之提升,他們也必须要预警生产线风险、质量异常,并且协调不同的部門一…

【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

[语义分割] ASPP不同版本对比(DeepLab、DeepLab v1、DeepLab v2、DeepLab v3、DeepLab v3+、LR-ASPP)

1. 引言 1.1 本文目的 本文主要对前段时间学习的 ASPP 模块进行对比,涉及到的 ASPP 有: ASPP in DeepLab v2,简称 ASPP v2ASPP in DeepLab v3,简称 ASPP v3ASPP in DeepLab v3,简称 ASPP v3ASPP in MobileNet v3&am…

开发提测?

前言 开发提测是正式开始测试的重要关卡,提测质量的好坏会直接影响测试阶段的效率,进而影响项目进度。较好的提测质量,对提高测试效率和优化项目进度有着事半功倍的作用。如何更好的推进开发提高提测质量呢?下面小编结合自己项目…

攻防世界-web-lottery

题目描述:里面有个附件,是网站的源代码,还有一个链接,是线上的网站 主页告诉了我们规则: 1. 每个人的初始金额为20美元 2. 一支彩票2美元,挑选7个数字,根据匹配上的数字有不同的奖励 我们先体…

基于dynamorio自制反汇编小工具 instr_trace安装

目录 概述一、下载源码二、安装dynamorio1、安装依赖2、编译3、测试安装是否成功参考截图 三、安装instr_trace工具1、文件说明2、编译3、运行 四、生成的文件格式说明(1)mov指令(寄存器->寄存器)(2)mov…

用 Yara 对红队工具 “打标“

​前言: YARA 通常是帮助恶意软件研究人员识别和分类恶意软件样本的工具,它基于文本或二进制模式创建恶意样本的描述规则,每个规则由一组字符串和一个布尔表达式组成,这些表达式决定了它的逻辑。 但是这次我们尝试使用 YARA 作为一种扫描工…

ELK日志分析系统介绍及搭建(超详细)

目录 一、ELK日志分析系统简介 二、Elasticsearch介绍 2.1Elasticsearch概述 三、Logstash介绍 四、Kibana介绍 五、ELK工作原理 六、部署ELK日志分析系统 6.1ELK Elasticsearch 集群部署(在Node1、Node2节点上操作) 6.2部署 Elasticsearch 软件 …

Chrome 调试技巧

有时候,qa测试会忽然出问题,然后需要你刷新界面,按照他的操作再来一次。 下面介绍一个更好的办法。 可以让qa打开chrome里的这个选项 Pause on uncaught 是在遇到未try的错误时暂停 下面那个是在try的时候出错时暂停 chrome自动断点 是不是特…