在Linux操作系统中文件目录特殊权限

管理员用户和普通用户都可以使用passwd命令来给用户设置密码

用户密码保存在/etc/shadow

suid  4

sgid   2

sticky bit   1

suid(只要是针对可执行文件进行设置。)

{当没有操作要求时,不可以擅自对shell,python脚本加上suid权限,会给系统造成极大的安全漏洞。}

suid权限会显示在九个权限位中属主权限位的最后一位。

suid权限的作用是当普通用户在使用这个命令期间会临时获取到这个文件的属主用户对这个文件的操作权限。(命令使用期间,,比如使用passwd命令去修改密码,但是修改密码的进程还没有结束。)

如上图所示,/etc/shadow文件,,任何用户都对该文件没有操作权限。

但是root用户和普通用户使用passwd命令修改用户密码时,却能成功修改文件中的内容,这是为什么呢?

当我们使用which命令去调查passwd命令时,就会发现passwd命令只不过是/usr/bin/passwd

当我们使用ls -l命令去检查看/usr/bin/passwd文件的详细信息时,就会发现在九个权限位的属主权限位的末尾出现的s字母,代表这个文件的属主用户对这个文件拥有suid权限。

当属主权限位的最后一位是s时,就表示原来这里的是x权限只不过被suid权限覆盖之后显示的是s权限。

如果当属主权限位的最后一位是S时,就代表原来九位权限数中属主权限的最后一位没有任何权限,

如上图所示,当使用chmod  u-s /usr/bin/passwd  命令去除/urs/bin/passwd属主的suid权限时,再次切换用户到user01使用passwd 命令去修改自身用户的密码时,会发现修改密码不成功。

这时在使用ls -l命令去调查/etc/shadow的详细信息时,发现九位权限数都是---------

sgid{针对目录所设置的权限,只对后面新建的文件起作用。}

针对目录设置文件,当对目录设置sgid权限时,在该目录创建的文件会自动继承目录的属组。

如上图所示,sgid权限加到目录九位权限数中属组权限的最后一位,

在之后在该目录下创建的文件的属组都会继承目录的属组。

而在此之前创建的文件的属组却不受任何影响。

sticky bit{防止普通用户相互该目录下的删除文件}

只要体现在九位权限位中其他用户权限位的最后一位上。出现字母t

针对目录设置。

如上图所示,user B用户无法正常登录系统,经过使用命令grep "userB" /etc/passwd

可以看到用户的详细信息,发现用户userB的shell程序是/sbin/nologin,,,就代表user B用户是普通用户中的系统用户无法正常登录系统,

可以使用命令usermod -s /bin/bash userB

来修改用户user B的shell程序,经过使用grep "userB" /etc/passwd   之后,发现用户userB的shell程序被修改为了/bin/bash  此时就可以正常登录系统。

一旦对目录拥有 w 权限,就可以在目录下执行 touch、rm、cp、mv 等命令。 执行权限(x) 目录是不能直接运行的,对目录赋予 x 权限,代表用户可以进入目录,也就是说,赋予 x 权限的用户或群组可以使用 cd 命令。 对目录来说,如果只赋予 r 权限,则此目录是无法使用的。 很简单,只有 r 权限的目录,用户只能查看目录结构,根本无法进入目录(需要用 x 权限),更不用说使用了。 因此,对于目录来说,常用来设定目录的权限其实只有 0(---)、5(r-x)、7(rwx)这 3 种。

也就是说,对于目录来说w权限要谨慎赋予,

如上图所示,使用命令chomd o+t /opt/bj/

为/opt/bj/  增加权限sticky bit  , 这就避免了普通用户互相删除这个目录下文件的情况。

如上图所示,当使用命令rm -rf /opt/bj/1 时,会提示没有权限删除文件。

只有三个用户可以删除拥有sticky bit权限目录下的文件,分别是root用户,文件的属主用户,以及该目录的属主用户。

如上图所示,当我们使用chmod命令去设置文件权限时,可以出现4位数字,其中最前面的数字代表的就是特殊权限,随后代表的是属主权限,然后代表的是属组权限,最后代表的是其他用户的权限。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java动态代理--cglib代理

1.概述 CGLIB动态代理是针对类实现代理(无需实现接口),为了弥补jdk的不足, Cglib 不基于接口,是基于父子的继承关系(被代理的对象是代理对象的父类),通过重写的形式扩展方法 2.定…

带头循环双向链表专题

1. 双向链表的结构 带头链表⾥的头节点,实际为“哨兵位”,哨兵位节点不存储任何有效元素,只是站在这⾥“放哨 的” “哨兵位”存在的意义: 遍历循环链表避免死循环。 2. 双向链表的实现 2.1双向链表结构 typedef int DataTyp…

【光伏科普】光伏软件都有些什么功能?

光伏软件是为满足光伏行业特定需求而设计的工具,它涵盖了多个方面的功能,以支持光伏系统的设计、分析、优化和运营。以下是光伏软件通常具备的一些核心功能: 1.光伏系统设计 组件布局优化:根据地理位置、光照条件、阴影遮挡等因素…

开源在线表单工具 HeyForm 使用教程

HeyForm 是一个非常出色的开源在线表单工具,可以通过直观的拖拽式编辑器,快速构建出美观实用的表单。 HeyForm 的功能非常丰富: 支持丰富的输入类型,从基础的文本、数字到高级的图片选择、日期选择、文件上传等,一应俱…

Java web第三次作业

springboot入门程序撰写并启动 2.使用postman练习参数的获取。 简单参数 复杂参数 数组参数 日期参数 json参数 路径参数 3、体会前端页面向后端发送数据的过程。并且自己尝试将之前的注册页面的信息发送到服务端。 (1)、product.html的操作代码&#…

后端返回的数据中含有Null的则不在前端展示

方式 1:application 上加配置 只需要在配置文件 上,增加 如下配置。 application 格式配置: spring.jackson.default-property-inclusionnon_null yml 格式配置: spring:jackson:default-property-inclusion: non_null注意&a…

数字逻辑课程实验环境配置与使用说明

文章目录 I.虚拟机搭建1.1 Vmware安装1.2 Win XP安装1.3 xftp7安装 I. Quartus II安装II. 使用说明2.1 新建工程2.2 在工程中加入代码2.3 代码编译波形仿真 I.虚拟机搭建 1.1 Vmware安装 Vmware17安装教程 1.2 Win XP安装 Win XP安装教程 1.3 xftp7安装 给虚拟机添加FTP …

【团体程序设计天梯赛 往年关键真题 详细分析完整AC代码】L2-009 抢红包(排序) L2-010 排座位 (dfs)

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】(L2-001 - L2-024)搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

MCU最小系统的电源模块设计和复位模块的设计

最小操作系统就是一个电路,这个电路里面必须要的东西(如人需要喝水吃饭温度等情况,才能或者) 现在我们要解决这三个问题 这里V开头的,都是电源管脚 这里解释一下: 这里要注意哪些是电路电压,哪…

盲人导航功能特点:革新出行体验的实时避障应用深度解析

作为一名资深记者,我有幸亲历并详尽报道一款专为盲人群体设计的导航应用叫做蝙蝠避障,它不仅提供了精准的路线指引,更创新性地融入了实时避障功能。这款应用凭借其盲人导航功能特点,正以前所未有的方式提升盲人的出行自由度与安全…

YOLOv9最新改进系列:YOLOv9改进加入新型高效的多尺度注意力(EMA)模块保留每个通道的信息并减少计算成本!助力v9检测性能遥遥领先!

YOLOv9最新改进系列:YOLOv9改进加入新型高效的多尺度注意力(EMA)模块保留每个通道的信息并减少计算成本!助力v9检测性能遥遥领先! YOLOv9原文链接戳这里,原文全文翻译请关注B站Ai学术叫叫首er 详细的改进…

SqlServer专题

目录 1,连接数据库 2,连接池 1.何为连接池? 2.连接池运行原理。 3.如何查看连接池? 4.连接池注意事项。 3,一般SQL语句。 4,控制语句 1.判断语句 2.循环语句 5,视图 1.使用…

Java高阶私房菜:快速学会异步编程CompletableFuture

为了使主程代码不受阻塞之苦,一般使用异步编程,而异步编程架构在JDK1.5便已有了雏形,主要通过Future和Callable实现,但其操作方法十分繁琐,想要异步获取结果,通常要以轮询的方式去获取结果,具体如下&#x…

电脑开不了机?不要慌,三招教你快速解决!

电脑开不了机是我们在日常使用中可能遇到的一个严重问题,它会影响我们的工作和生活。了解如何解决电脑开不了机的问题对于维护电脑正常运行至关重要。本文将介绍三种常见的解决电脑开不了机的方法,帮助您快速恢复电脑的正常使用。 方法1:检查…

Java实现生成中间带图标的二维码

Java实现生成中间带图标的二维码 生成Base64格式的二维码,返回html渲染 package your.package;import com.google.zxing.*; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcod…

flask 应用程序

flask 程序示例 创建 hello.py 文件: # 导入 Flask 模块。Flask 类的一个对象是 wsgi 应用程序。 from flask import Flask# 创建app对象, Flask构造函数将当前模块的名称(__name__)作为参数。 app Flask(__name__)# route() 函数是一个装饰器,它告诉应…

Linux上安装mysql指南

最近入职了新单位,申请到了一台cvm。我这个机子是redhat的linux发行版,就用rpm包安装工具就行。下面把我趟过的一些坑写在这里,希望对您有帮助。 一开始,我自己下载了安装包,装了一个这个社区版的,rpm -qa…

鸿蒙入门05-真机运行“遥遥领先”

如果你有一台真的 "遥遥领先"那么是可以直接在手机上真机运行你的项目的我们也来尝试一下运行 一、手机设置开发者模式 打开手机设置 打开手机设置界面 向下滑动到关于手机位置 快速连续点击版本号位置 下图所示位置快速连续点击 打开 3 - 5 次即可 会提示您已经进…

【R语言】动画图:散点图

绘制成如下的散点图: 如果数据量大,有多个年份,就会生成多张图,例如: 具体代码如下: library(gapminder)#加载 gapminder 包,其中包含了从 1952 年至 2007 年各个国家的 GDP、预期寿命和人口数据…

目标检测——鱼类数据集

一、重要性及意义 生物多样性保护与监测: 鱼类识别是生物多样性保护工作的关键一环。通过准确识别不同种类的鱼类,科学家能够更好地了解它们的分布、种群数量以及栖息地状况,从而制定更为有效的保护措施。鱼类是水域生态系统的重要组成部分…