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

news2024/11/26 16:41:52

管理员用户和普通用户都可以使用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位数字,其中最前面的数字代表的就是特殊权限,随后代表的是属主权限,然后代表的是属组权限,最后代表的是其他用户的权限。

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

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

相关文章

dbeaver数据库语言编辑器设置jdbc驱动

打开 dbeaver 软件 数据库 -> 驱动管理器 以mysql为例 双击 MySQL -> 库 -> 添加工件 然后 打开maven组件库 官网 找到mysql驱动对应的maven工件地址 复制进去然后确认就行了 参考 大神博客

48.基于SpringBoot + Vue实现的前后端分离-雪具销售系统(项目 + 论文PPT)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的雪具销售系统设计与实现管理工作系统…

【测试思考】做比开发、产品还熟悉业务的测试

有时一个边缘功能很久很久不改动,那再需要测通它时,经常需要对接多方,有的请假了有的调走了有的不清楚更甚者有时候一个功能找不到清楚的人....... 当没有可查阅的文档或记录,找不到完整的信息时,咋办? 当…

n皇后问题-java

本次n皇后问题主要通过dfs(深度优先搜索)实现,加深对深度优先搜索的理解。 文章目录 前言 一、n皇后问题 二、算法思路 三、使用步骤 1.代码如下 2.读入数 3.代码运行结果 总结 前言 本次n皇后问题主要通过dfs(深度优先搜索&#…

027——从GUI->Client->Server->driver实现对SR501的控制

目录 1、修改显示界面 2、 添加对SR501显示的处理和tcp消息的处理 3、 在服务器程序中添加对SR501的处理 4、 编写驱动句柄 5、 修改底层驱动 1、修改显示界面 有个奇怪的问题这里的注释如果用 就会报错不知道为啥,只能用#来注释 我把显示这里需要显示的器件的…

宝塔要注意的问题

数据库创建访问权限要全部人 反向代理1 打包dist,并不会有反向代理,所以宝塔里面要配置 反向代理2 这种去掉/api为/,上面的并没有去掉 rewrite ^/api/(.*)$ /$1 break;

mysql数据库表的数据显示到前端tableView

首先我们在ui视图设计中引入TableView, 定义一个model QSqlQueryModel *modelnew QSqlQueryModel(ui->tableView);model->setQuery(query);//将查询结果绑定到模型上ui->tableView->setModel(model); 将tableView内容设置成model然后就可以出现数据库的数据。示…

企业网站制作如何被百度收录

1、网站在百度中的整体评分 说俗点就是网站的权重,在优化过程中我们会见到很多网站出现秒收的情况,发布的文章几分钟就可以收录,这个通过SITE语法都可以去查询,那么这跟自己的网站权重以及内容更新习惯是有非常重要的关联。 我们…

Python-Qt上位机设计

1.下载designer软件 2.自己设计一个界面 3.在指定部件加入点击响应命令函数名 鼠标点击目标部件拖出信号线 4.保存生成.ui文件,用pycharm打开 5.生成.py文件 6.新建一个功能文件 上图中class MainWindow的具体代码不予展示。 7.生成exe文件 将写好的py文件保存&a…

产品推荐 | 基于Anlogic系列EG4S20 FPGA开发板

1、产品概述 国产FPGA是最近几年起来的产品。ANLOGIC 是国产FPGA组织一成员,ANLOGIC芯片具有性价比高特点。高云FPGA,很多用户都用在LED,电机控制,PLC设备上,接口扩展。在国产化平台,Altera ,L…

Solaris安装Oracle RAC配置手册

一. Oracle RAC安装前的系统准备工作 检查安装包 ​pkginfo –i SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibm SUNWlibms SUNWsprotSUNWtoo pkg install SUNWarc SUNWbtool SUNWhea SUNWlibC SUNWlibm SUNWlibms SUNWsprotSUNWtoo 1.1 创建系统用户和组(两节点都要执行 ro…

Python相关性分析

分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程称为相关分析。 可以直接绘制散点图,或者绘制散点图矩阵,或者计算相关系数来进行相关分析。 相关系数的计算如下所示: 示例数据: 计算百合酱蒸…

本地启用并操作Redis

本篇文章将向各位讲解redis的基础用法,废话不多说我们直接开始吧! 首先需要下载redis到你本地,我这儿是下载到以下文件夹中: 双击redis-server.exe文件运行redis: 然后我们另外启用一个命令窗口(需要进入你…

JDK11安装教程

文章目录 1、安装2、配置环境变量 1、安装 双击安装包,点击下一步 更改安装目录,点击下一步 等待安装完成 安装完成 2、配置环境变量 此电脑右键属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 新建 变量名:JAVA_HOME变量…

发布!DolphinDB 白皮书正式上线官网!

对广大数据库用户而言,白皮书是极具参考价值的使用指南和学习手册。白皮书不但能深入剖析数据库的基础概念与架构,协助用户了解数据库的工作原理和应用技巧,更提供了丰富的实践案例,帮助用户从中汲取经验,避免在实际应…

Java 实际项目开发中最少必要知识汇总

一、面向过程和面向对象 程序设计语言分为面向过程和面向对象 对于面向过程,强调的是过程,关心的是我去做 对于面向对象,强调的是对象(万物皆对象),更关心的是我该让谁去做,这里的谁指的就是对象…

AutoCoder 副作用,秒变命令行版Siri,再也不用复制黏贴命来管理大模型了

AutoCoder 可以通过你指定的文档,以及自动到搜索引擎进行搜索来获取信息,从而更好的帮你生成代码,但我们不满足,我们还希望能够对用户本地的文档进行索引,从而自动获取一些信息,帮助你本地的项目更好的迭代…

如何进行数据库的迁移与同步——【DBA 从入门到实践】第四期

在日常的数据库运维工作中,我们时常会面临数据库替换、机房搬迁、业务测试以及数据库升级等任务,这些任务都需要对数据进行迁移和同步操作。【DBA 从入门到实践】第4期,将引导大家深入了解数据库迁移的流程,并探讨在迁移过程中可用…

设计模式胡咧咧之策略工厂实现导入导出

策略模式(Strategy Pattern) 定义: 定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。 本质: 分离算法,选择实现 应用场景 何时使用 一个系统有许多类,而区分他们的只是他们直接…

Python与数据库交互的最佳实践

Python作为一种强大且易于学习的编程语言,在数据处理和应用程序开发方面具有广泛的应用。在构建涉及数据存储和检索的应用程序时,Python与数据库的交互成为关键的一环。本文将深入探讨Python与数据库交互的最佳实践,帮助读者更好地理解和应用…