百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

CentOS7 - 以其他用户身份运行二进制文件

nanshan 2024-11-04 13:07 10 浏览 0 评论

以其他用户身份运行二进制文件

CentOS 上的每个程序都在用户帐户的环境中运行, 而不管该程序是由用户执行还是作为自动系统进程运行。但是, 有时我们希望程序以不同的限制运行, 并访问允许该帐户的这些权限。例如, 用户应该能够使用 passwd command 来重置其密码。该命令需要对/etc/passwd 的写入访问权限, 但我们不希望运行该命令的用户具有这样的访问权限。此配方教您如何设置程序的 SUID 和 SGID 权限位, 使其能够在不同用户的环境中执行。

准备

需要一个 CentOS 系统。还需要管理权限, 方法是使用根帐户登录或使用 sudo。

如何来做

请按照以下步骤操作, 以允许程序以其他用户的身份执行:

  • 使用 ls 命令标识文件的所有者和组详细信息。其输出中的第三个字段列出所有者, 第四个字段列出组:
ls -l myscript.sh
  • "-L" 选项以长格式显示文件列表, 其中包括所有权信息
  • 如有必要, 请使用 chown 更改文件的所有权, 以便所有者是您希望脚本在其中执行其环境的所有者:
chown newuser:newgroup myscript.sh
  • 将 SUID 位设置为允许程序运行, 就像它的所有者调用它一样:
chmod u+s myscript.sh
  • 将 SGID 位设置为允许程序运行, 就像由其组的成员调用一样:
chmod g+s myscript.sh

它是如何工作的

设置文件的 SUID 和 SGID 位后, 程序将在其所有者或组的环境中运行, 而不是在调用它的用户的环境中运行。这通常是通过无特权用户应该有权访问的管理程序来完成的, 但程序本身需要管理权限才能正常运行。

位是使用 chown 设置的, 并设置为针对 SUID 位。具有 SUID 位设置的脚本将使用其所有者拥有的权限执行。g 设置为针对 SGID 位, 该位允许脚本以其组成员的权限执行。直觉上, + 设置位并-删除位, 然后允许程序在调用用户的环境中执行。

chmod u-s myscript.sh
chmod g-s myscript.sh

SUID 和 SGID 可以用数字方式设置, 因为 SUID 的值为 4, SGID 的值为2。这些可以汇总在一起, 并在数字权限值中显示为最左侧的数字。例如, 下面设置 SUID 位, 即文件所有者的读取、写入和执行位;读取、写入和执行组成员的位;并为其他人读取和执行位:

chmod 4775 myscript.sh

但是, 数字方法要求您指定文件的所有权限。如果您需要这样做, 并且想要同时设置 SUID 或 SGID 位, 则这不是问题。否则, 使用 + 或-添加或减去缩进位可能更方便。

使用带有 chmod 的助记符设置位也适用于标准权限。u、g 和目标为其所有者 (u 表示用户)、组 (g 表示组) 和其他人 (a 表示所有) 提供所需的位。读取访问的字符为 r、写入 w 和执行 x。下面是使用助记符的几个示例:

  • 允许文件的所有者执行该文件:
chmod o+x myscript.sh
  • 允许组成员读取文件:
chmod g+r myfile.txt
  • 防止所有不是组所有者或成员的人写入文件:
chmod a-w readonly.txt

See also

Refer to the following resource for more information about chmod and setting the SUID and SGID bits.

  • The chmod man page (https://linux.die.net/man/1/chmod)
  • How to set the SetUID and SetGID bit for files in Linux and Unix (http://linuxg.net/how-to-set-the-setuid-and-setgid-bit-for-files-in-linux-and-unix/)
  • Wikipedia: Setuid (https://en.wikipedia.org/wiki/Setuid)

相关推荐

服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下

Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...

服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复

服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...

服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例

服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...

「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复

服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...

服务器数据恢复-ESXi虚拟机被误删的数据恢复案例

服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...

「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例

服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...

服务器数据恢复—基于oracle数据库的SAP数据恢复案例

服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...

「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例

服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...

服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例

服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...

服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案

RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...

「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例

服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...

服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?

服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...

服务器数据恢复—Linux+raid5服务器数据恢复案例

服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...

服务器数据恢复—Sql Server数据库数据恢复案例

服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...

服务器数据恢复—阿里云ECS网站服务器数据恢复案例

云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...

取消回复欢迎 发表评论: