C语言setuid()函数:设置真实的用户识别码

头文件:

#include

定义函数:

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.

C语言setreuid()函数:设置真实及有效的用户识别码

头文件:

#include

定义函数:

int setreuid(uid_t ruid, uid_t euid);

函数说明:setreuid()用来将参数ruid 设为目前进程的真实用户识别码, 将参数euid 设置为目前进程的有效用户识别码. 如果参数ruid 或euid 值为-1, 则对应的识别码不会改变。

返回值:执行成功则返回0, 失败则返回-1, 错误代码存于errno.

C语言setfsuid()函数:设置文件系统的用户识别码头文件:

#include

定义函数:

int setfsuid(uid_t fsuid);

函数说明:setfsuid()用来重新设置目前进程的文件系统的用户识别码. 一般情况下, 文件系统的用户识别码(fsuid)与有效的用户识别码(euid)是相同的. 如果是超级用户调用此函数, 参数fsuid 可以为任何值, 否则参数fsuid 必须为real/effective/saved 的用户识别码之一.

返回值:执行成功则返回0, 失败则返回-1, 错误代码存于errno 附加说明此函数为 Linux 特有

错误代码:

EPERM:权限不够, 无法完成设置.

linux中用户识别码,C语言中设置用户识别码的相关函数的简单讲解相关推荐

  1. c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  2. python语言的注释语句引导符不包括什么_以下选项中,哪一个是Python语言中代码注释使用的符号?________...

    [单选题]关于 Python 语句 P = –P,以下选项中描述正确的是________ [多选题]Python的数字类型包括( ) [多选题]Python中的注释符有哪几种?( ) [判断题]已知 ...

  3. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  4. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  5. r语言barplot函数图中加标签_R语言中绘制条形图的简单方法

    原标题:R语言中绘制条形图的简单方法 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形.它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.在实际中,条形图主要 ...

  6. c语言程序中函数类型,C语言中的函数分别有什么?

    C语言函数是一种函数,用来编译C语言,所在库函数为ctype.h,分为分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等. C语言中的函数在其他编程语言中也称为过程或子程序.要执行任务,我们 ...

  7. c语言中程序偏离,C语言中的指针加减偏移量

    首先看一段程序: #include int main() { int a[5] = {1, 2, 3, 4, 5}; int* p = (int*)(&a + 1); printf(" ...

  8. c语言中二维数组中产生随机数,C语言中是如何进行随机数生成的[多图]

    C语言中是如何进行随机数生成的.C语言是编程人员经常会到的一款计算机编程语言,有的朋友想知道怎样使用C语言进行随机数生成,那么就快随小编一起来看看这篇C语言中是如何进行随机数生成的吧!其中不仅为大家介 ...

  9. php语言中的符号,php语言中的面向对象

    php语言中的面向对象 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物.下面小编要给大家讲述的是php语言中的面向对象,欢迎阅读,更多详情请关注应届毕业生考试网. p ...

最新文章

  1. 笑谈.Net的开发境界
  2. 安装 PHP Memcache 扩展
  3. 漫谈SAP产品里页面上的Checkbox设计与实现系列之一
  4. 如何理解const char*, char const*, char*const等
  5. 大数据分析必须要会的统计分析!!!
  6. HBuilder工作笔记003---HBuilder 连接夜神模拟教程
  7. 视频分享:做“有料”的计算机大学生
  8. 中台架构的未来在哪—开放式架构
  9. 独家首发强大的个性生成工具箱微信小程序源码,超多功能的合成
  10. Smobiler实现app的主页——C# 或.NET Smobiler实例开发手机app(三)
  11. Arcgis使用教程(十)ARCGIS地图制图之基于颜色搭配器的地图颜色配色
  12. C 小鑫の日常系列故事(七)——小纸条 SDUT
  13. php中file_get_contents与curl性能比较分析
  14. SQLite封锁机制
  15. 协变量偏移_恶意软件分类的协变量偏移
  16. SQL Error: 904, SQLState: 42000
  17. Apicloud——关于上传图片、视频
  18. ISCC2021—Retrieve_the_passcode
  19. 解决IDM下载pornhub视频提示“服务器响应显示您没有权限下载此文件” 403Forbidden
  20. echarts x轴 字 纵向_echarts柱状图表标题的位置竖立在Y轴上?

热门文章

  1. 飞鸽传书2012绿色版
  2. 普通小白学会Python到底具体能做什么呢?
  3. python globals() 动态函数调用_[Python] 动态函数调用(通过函数名)
  4. mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
  5. linux teaming状态命令,Linux 网卡Teaming
  6. AnimalTFDB 3.0 | 动物转录因子注释和预测的综合资源库
  7. python中正确的输入语句_python中,输入简单的非法语句为什么显示不一致呢
  8. 推荐一款自动化代码变量命名在线工具
  9. laravel项目白屏问题解决办法及原因
  10. 3倍根号x加1分之一c语言,用C语言将一个数开根号后再取倒数的方法