Linux特殊文件权限—SUID, GUID and Sticky Bit(s权限,t权限)

2023-11-15

权限设置

常用权限

linux系统内有三种身份:u拥有者,g群组,o其他人
有三种常用权限:r读权限,w写权限,x执行权限
r:读权限,用户可以读取文档的内容,如用cat,more查看
w:写权限,用户可以编辑文档
x:该目录具有可以被系统执行的权限

其他权限(s权限,t权限)

SUID位

s权限: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。
设置suid位

chmod u+s file_name

当在可执行文件上设置SUID位时,这意味着该文件将以与可执行文件所有者相同的权限执行。

-rwsr-xr-x- root root 4590 Mar 2022 /usr/bin/passwd

这意味着任何使用者都能运行这个python文件与root用户有相同的权限。这就是为什么您可以使用passwd命令更改自己的密码,尽管此命令修改的文件归root所有。
但是你作为普通用户可以修改自己密码却不能修改别人的密码,因为passwd命令会使用运行该命令的uid检查密码被修改的用户uid,匹配失败则报错。
如果要设置s权限,需要先有执行权限。否则表现为-rwS——出错。

GUID位

当给文件设置GUID位时,意味着执行文件的任何用户都将拥有与文件组所有者相同的权限。
处理目录的好处是。当GUID权限应用于目录时,在此目录中创建的所有子目录和文件将获得与主目录相同的组所有权(而不是创建文件和目录的用户的组所有权)。
设置guid位

chmod g+s directory_name

SGID的一个实际例子是使用Samba服务器在本地网络上共享文件。保证所有新文件都不会失去所需的权限,无论是谁创建的。

Sticky bit

t权限只能在目录上设置。在目录上设置t权限后,目录中的所有文件只能由文件所有者或根删除或重命名。

drwxrwxrwt 1 root root 512 Apr 12 13:24 /tmp

这意味着用户(root除外)无法删除其他用户在/tmp目录中创建的临时文件。
设置t权限

chmod +t my_dir
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux特殊文件权限—SUID, GUID and Sticky Bit(s权限,t权限) 的相关文章

  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • 在 bash 脚本中提取 XML 值 [重复]

    这个问题在这里已经有答案了 我正在尝试从 xml 文档中提取一个值 该文档已作为变量读入我的脚本中 原始变量 data is
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR

随机推荐

  • java和bootstrap实现行内编辑

    实现BootstrapTable单个单元格编辑后立马提交保存 批量编辑已经选中的单元格后提交保存的实现 排序有点乱了 随便记一下吧 大概就是引入这三个文件 首先引入x editable相关的js css文件
  • unity Shader实现半透明阴影

    在shader中 要对移动端的兼容 还不想实现两套分开兼容的话 pragma exclude renderers gles gles3 glcore pragma target 4 5 这两句话一定要改掉 第一行代码直接剔除了gles的渲染
  • CStdioFile扩展(支持Ansi、Unicode、Utf-8等文本格式)

    头文件声明 CStdioFileEx h StdioFileEx h interface for the CStdioFileEx class Version 1 1 23 August 2003 Incorporated fixes fr
  • 防抖和节流怎么做

    防抖和节流都是为了控制代码执行频率 提高性能和用户体验 防抖和节流的区别在于 防抖是在一定时间内只执行最后一次操作 而节流是在一定时间内只执行一次操作 下面是防抖和节流的代码实现 防抖 function debounce fn delay
  • AdapterViewFlipper和StackView的使用

    练习使用AdapterViewFlipper 1 xml布局文件
  • 20230903-闹钟

    app cpp include app h include ui app h int k1 true APP APP QWidget parent QWidget parent ui new Ui APP ui gt setupUi thi
  • IDEA编译器中关闭包显示并排的问题

    问题 IDEA编译器默认是包并排显示 不好操作 解决 取消Compact Middle Packages打勾就可以了
  • CMOS图像传感器——TOF 图像传感器

    一 3D成像技术概述 图像传感器一直以来都是人类研究的热点 但随着当代科学技术发展 人类对于传统的 2D 图像传感器的要求越来高 不仅期望着更高分辨率 更快速度 更大的动态范围 人类加希望能够获得物体深信息 但是 2D 成 像技术现在已经不
  • 接口测试与功能测试的区别~

    今天为大家分享的是我们在日常测试工作中 一定会接触并且目前在企业中是主要测试内容的 功能测试与接口测试 一 功能测试与接口测试的基本概念 1 1 什么是功能测试呢 功能测试 是黑盒测试的一方面 检查实际软件的功能是否符合用户的需求 功能测试
  • 【Java面试题汇总】Java基础篇——基础、修饰符和关键字(2023版)

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 一 基础 1 1 请你说说Java的特点和优点 为什么
  • 方法的重写和重载

    1 重载是在本类中的 就是同一个方法名而内容不一样的方法 也就是同名 同类型的方法 返回类型可以不考虑 允许存在多个同名方法 public void show int int 这个方法名 public void show int int i
  • 裁剪图片vue-cropper实例 基础功能 预览 获取裁剪后图片数据

    在项目中使用到了裁剪图片功能 通过vue croppe实现 安装和引入 npm 安装 npm install vue cropper yarn 安装 yarn add vue cropper 项目中引用引入 这里我的项目是 vue2 组件中
  • 神奇的向量旋转

    在计算几何中最常用的就是向量 叉积 今天来一起研究一下向量的旋转 首先考虑一个向量 p x y 那么它写成坐标的形式就是x iy 这个就是P点在复平面的坐标 问题 假设现在有一个角度d 并且使向量p沿逆时针方向旋转d角度并且不改变其模的大小
  • openLayers画椭圆

    前言 OpenLayers可以通过代码绘制多种几何形状 也可以通过draw类型的交互组件绘制几何形状 官方实例提供了类如圆 折线 矩形 星形等方法 除此之外 椭圆这种图形其实也是非常常见的几何图形 但是官方没有提供现成的API 本文从使用代
  • linux新建文件夹_Linux下配置NAS的一些总结经验

    前言 经历了上一次的Windows Server的痛苦配置以后 我决定换成Linux来配置NAS 相对于Windows平台 Linux平台会更加自由和简洁 而且清晰的权限和后台也要比Win更加干净 唯一的弊端就是要去学不少命令 但是我这里会
  • http通过get方法调用接口代码部分

    请求参数的java类 import java sql Timestamp public class ReqData private String appKey private String sign private String versi
  • CBAM: Convolutional Block Attention Module—— channel attention + spatial attention

    影响卷积神经网络的几大因素 Depth VGG ResNet Width GoogLeNet Cardinality Xception ResNeXt Attention channel attention spatial attentio
  • Python matplotlib绘制散点图

    Python matplotlib绘制散点图 上篇文章介绍了使用matplotlib绘制折线图 参考 https blog csdn net weixin 43790276 article details 109191533 本篇文章继续介
  • CSR867x — 开机是进入可发现可连接还是RSSI配对

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 XX 版权声明 原创文章 欢迎评论和转载 转载时能告诉我一声就最好了 XX 要说的话 作者水平
  • Linux特殊文件权限—SUID, GUID and Sticky Bit(s权限,t权限)

    Linux特殊文件权限 权限设置 常用权限 其他权限 s权限 t权限 SUID位 GUID位 Sticky bit 权限设置 常用权限 linux系统内有三种身份 u拥有者 g群组 o其他人 有三种常用权限 r读权限 w写权限 x执行权限