具有SetUID或SetGID属性的程序,能够在进程执行中调用系统调用setuid()或setgid() ,调用成功后这个进程就具有了程序文件属主和组的权限,就可以完成以前改变身份之前不能完成的任务。因为通过它们程序可以改变进程的用户标识,绕过系统的权限设置,因此这两个属性对于系统安全非常重要。尤其是属于root的文件,并设置了SetUID属性的程序,更是系统安全中值得注意的地方。为了保证系统安全,必须保证没有非法的SetUID或 SetGID程序的存在,通常管理员可以使用find命令来完成这个任务,例如查找具有SetUID的程序,则执行:
setuid(设置真实的用户识别码)
相关函数
getuid,setreuid,seteuid,setfsuid
表头文件
#include<unistd.h>
定义函数
int setuid(uid_t uid)
函数说明
setuid()用来重新设置执行目前进程的用户识别码。不过,要让此函数有作用,其有效的用户识别码必须为0(root)。在Linux下,当root 使用setuid()来变换成其他用户识别码时,root权限会被抛弃,完全转换成该用户身份,也就是说,该进程往后将不再具有可setuid()的权利,如果只是向暂时抛弃root 权限,稍后想重新取回权限,则必须使用seteuid()。
返回值
执行成功则返回0,失败则返回-1,错误代码存于errno。
附加说明
一般在编写具setuid root的程序时,为减少此类程序带来的系统安全风险,在使用完root权限后建议马上执行setuid(getuid());来抛弃root权限。此外,进程uid和euid不一致时Linux系统将不会产生core dump。
分享到:
相关推荐
Linux下获取root权限的c程序 传递euid和egid给脚本,使脚本具有特殊用户的权限 使脚本实现类于设置了stick位的效果 shell, python, perl等脚本、程序不能取得suid,因为这些脚本程序需要解释器-/bin/bash, /usr/bin/...
1.2 Linux程序设计 1. 2.1 Linux程序 1. 2.2 文本编辑器 1. 2.3 C语言编译器 1. 2.4 开发系统导引 1.3 获得帮助 1.4 小结 第2章 shell程序设计 2.1 为什么使用shell编程 ...
Linux程序设计 分卷文件共有以下2个: Linux程序设计 第4版.haozip01.zip Linux程序设计 第4版.haozip02.zip 基本信息 原书名: Beginning Linux Programming 原出版社: Wrox 作者: (英)Neil Matthew Richard ...
1.2 Linux程序设计 1. 2.1 Linux程序 1. 2.2 文本编辑器 1. 2.3 C语言编译器 1. 2.4 开发系统导引 1.3 获得帮助 1.4 小结 第2章 shell程序设计 2.1 为什么使用shell编程 2.2 一点...
1.2 Linux程序设计 1. 2.1 Linux程序 1. 2.2 文本编辑器 1. 2.3 C语言编译器 1. 2.4 开发系统导引 1.3 获得帮助 1.4 小结 第2章 shell程序设计 2.1 为什么使用shell编程 ...
Linux程序设计 分卷文件共有以下2个: Linux程序设计 第4版.haozip01.zip Linux程序设计 第4版.haozip02.zip 基本信息 原书名: Beginning Linux Programming 原出版社: Wrox 作者: (英)Neil Matthew Richard ...
一种基于程序权限的访问控制框架及其在Linux中的实现.pdf
应用程序通过设备地文件寻找访问具体地设备,而设备则像普通文件一样受到文件系统访问权限控制机制地保护。 应用程序通常可以通过系统调用open()“打开”这个设备文件,建立起与目标设备的连接。代表着该设备的...
在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可...
fastboot linux 版本程序,权限配置好后,在本人电脑 ubuntu 16.04 上 fastboot 命令成功烧录镜像到手机
Linux低权限模糊化执行的程序名和参数,避开基于execve系统调用监控的命令日志.zip
在 Linux 下,默认情况下1024 ... 给用户的应用程序在执行位设置用户 ID 能够使程序可以以 root 权限来运行,这个方法让程序能够像在 root 下运行一样,不过需要非常小心,这种方法同样会带来安全风险,特别是当要
业务背景: yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序 系统:CentOS 6.3 apache是php的执行用户 用exec函数去执行linux系统上的程序/usr/local/yourcmd/sbin/yourcmd php代码如下: ...
Linux系统具有高效的网络功能和稳定的性能,因此被广泛应用于服务器领域,Linux是云计算的核心组成部分,被广泛用于构建云平台和云服务。许多知名的云计算服务提供商都采用Linux系统作为其基础架构,一些游戏平台和...
分析了基于程序权限的访问控制的思想,根据三维访问矩阵模型的原理提出基于程序权限的访问控制模型,并介绍其在南京大学计算机系设计的基于Linux的安全增强系统中的原型性的实现。
Linux系统具有高效的网络功能和稳定的性能,因此被广泛应用于服务器领域,Linux是云计算的核心组成部分,被广泛用于构建云平台和云服务。许多知名的云计算服务提供商都采用Linux系统作为其基础架构,一些游戏平台和...
但是,FTP后台是通过b用户登录linux系统执行程序上传文件到FTP服务器,由于FTP服务器的文件夹都是由admin用户创建的,且属性为755,b用户根本没有写的权限,导致程序上传文件失败。 二、分析 那么解决问题的方法应该...
题目关键字 linux shell程序设计实验1 题目录入时间 2013-5-6 10:25:36 题目内容 完成课本实验6的第2题,要有输入错误处理。 题目创建人 题目注释 把程序文件以附件形式提交即可。 题目名称 linux ...
Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审 计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。 正因其稳定、高效、安全,已经被越来越多的用户了解、使用,...