最近在项目中有一个需要给root权限的脚本, 因此详细看了一下关于Linux中setuid的使用方法, 在此做一下整理.

关于ruid和euid

首先需要明确一下Linux进程中ruid和euid的概念.
每一个Linux进程都会包含这两个uid.

ruid(real user ID):
ruid可以理解为哪个用户执行了这个程序或者文件, ruid就是谁.

euid(effective user ID):
当进程执行时间, 操作系统会对euid进行识别, 以此来判断到底用什么权限来执行这个进程.

也就是说操作系统实际是通过判断进程的euid而不是ruid来给予其权限,只是在大多数情况下, euid和ruid是相等的.

setuid

setuid是类unix系统提供的一个标志位, 其实际意义是set一个process的euid为这个可执行文件或程序的拥有者(比如root)的uid, 也就是说当setuid位被设置之后, 当文件或程序(统称为executable)被执行时, 操作系统会赋予文件所有者的权限, 因为其euid是文件所有者的uid.

举个例子

setuid的方法是使用Linux的chmod指令,我们都习惯给予一个文件类似“0750” “0644” 之类的权限,它们的最高位0就是setuid的位置, 我们可以通过将其设为4来设置setuid位。(tips:设置为2为setgid,同setuid类似,即赋予文件所在组的权限)。

chmod 4750 文件名
or
chmod u+s 文件名

在这个命令执行之后, 我们再通过ls -l命令查看文件时, 可以发现文件owner权限的x 位变成了s ,这就说明setuid权限已经被设置, 之后任何user执行这个文件时(user需要有文件的执行权限), 都会以root的权限运行(此文件的owner为root)。 所以,针对一个需要被很多user以root权限执行的文件, 我们可以通过setuid来进行操作, 这样就不必为所有user都添加sudo 命令。

tips

在使用setuid时, 需要保证此文件有被执行的权限(x), 如果没有执行权限。 在使用ls -l查看权限时, 会发现setuid位被设置为了大写的S, 这说明setuid位没有被设置成功。

Linux中的setuid简介相关推荐

  1. Linux中用户的简介与管理

    女主宣言 众所周知,linux是一个多用户.多任务的操作系统.那么linux是如何区分和认证用户的,系统对每个用户的授权是如何管理的,出现问题时是如何追朔每个用户在系统内的操作记录,这些就涉及到了li ...

  2. Android系统篇之—-Android中的run-as命令引出升降权限的安全问题(Linux中的setuid和setgid)

    一.前言 最近一周比较忙,没时间写东西了,今天继续开始我们今天的话题:run-as命令,在上周的开发中,遇到一个问题,就是在使用run-as命令的时候出现了一个错误,不过当时因为工作进度的问题,这问题 ...

  3. Android系统篇之----Android中的run-as命令引出升降权限的安全问题 Linux中的setuid和se

    一.前言 最近一周比较忙,没时间写东西了,今天继续开始我们今天的话题:run-as命令,在上周的开发中,遇到一个问题,就是在使用run-as命令的时候出现了一个错误,不过当时因为工作进度的问题,这问题 ...

  4. linux中/dev/shm简介与大小修改

    linux中/dev/shm简介与大小修改 文章目录 linux中/dev/shm简介与大小修改 简介 实操 验证/dev/shm存储位置 修改/dev/shm 大小 简介 linux中/dev目录下 ...

  5. [转]Linux中常见目录简介

    学习一个东西只有去了解它的本源才能更好的利用它. 一.根目录下的 首先介绍一下linux中的根目录下的文件夹的作用: 目录 说明 备注 /bin   /sbin  保存系统命令 /bin所有用户都能执 ...

  6. Linux中的echo简介(自我总结)(44)

    2019独角兽企业重金招聘Python工程师标准>>> 能在echo中输出的字符:(注意运行这些字符时都要加-e选项.) Here are following escape sequ ...

  7. kali Linux中wafw00f的简介以及使用教程

    在KaliLinux中提供了一款防火墙探测工具"wafw00f"(这里是数字"00",千万别搞错了),这个工具可以通过发送正常以及不正常甚至是包含恶意代码的HT ...

  8. 7、Linux中文件类型、文件属性

    Linux中文件类型简介:Windows中通过扩展名来区分文件类型,但是在Linux中文件的扩展名与文件类型无关,为了兼容用户使用Windows的习惯,我们也会用扩展名来表示Linux中的文件类型.在 ...

  9. linux中权限765啥意思,Linux中的文件权限

    Linux系统中的每一个文件都与多种权限类型相关联.在这些权限中,我们主要和三类权限打交道:用户(user).用户组(group)和其他用户(others).用户是文件的所有者:用户组是指和文件所有者 ...

最新文章

  1. QT实现SameGame
  2. PHP-Redis扩展安装 error: ext/standard/php_smart_str.h: No such file or directory
  3. You can't specify target table 'TS_AUTH_ADMIN' for update in FROM clause记录
  4. 苹果有意参与角逐奥斯卡 欲投资6部电影!
  5. Java 和 Python 疯狂 PK,等等,请不要放弃 C 语言
  6. 谷歌chrome浏览器提示“喔唷 崩溃啦”的解决方案
  7. 进制之间的转换(转)
  8. GeoDa空间计量(一)——空间权重矩阵的生成
  9. MATLAB 神经网络函数
  10. 英语口语 MP3 下载网址
  11. 利用python构建信用卡评分
  12. AERONET 儒略日公历相互转换
  13. 【Python表白爱心合集】——“故事很长,我长话短说,我喜欢你,很久了”(♡ʟᴏᴠᴇ ᴜ ᴛʜʀᴇᴇ ᴛʜᴏᴜsᴀɴᴅ♡)
  14. android小说阅读、MVP + RxJava + Retrofit项目、证件拍照裁剪、蓝牙锁等源码器
  15. 传统编译器和DL编译器的调研和理解
  16. LaTeX:overleaf latex 中文生僻字处理
  17. 慢性病监测及早期干预迫在眉睫
  18. gulp代码压缩和制作雪碧图
  19. SQL优化速度,关于like
  20. IDEA-Java注释模板设置

热门文章

  1. 基本面分析 ≠ 基本面量化投资?
  2. 计算机防火墙知识点,防火墙及防火墙的基本概念-信息安全工程师知识点
  3. 操作系统P/V操作(V操作中的典型理解偏差)
  4. python几岁开始学比较好_少儿编程到底几岁开始学合适?
  5. 字节跳动移动架构师学习笔记,Android篇
  6. 将禾赛激光雷达在rviz中采集的点云保存成pcd格式
  7. 超详细超快的免费图床设置教程
  8. 2021年中国研究生数学建模竞赛A题(华为公司命题)——相关矩阵组的低复杂度计算和存储建模
  9. ENGLISH资料收集(3)-英语日期的正确表达
  10. 程序员的头符合好头的标准吗?