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

C语言中设置用户识别码的相关函数的简单讲解,第1张

概述C语言setuid()函数:设置真实的用户识别码头文件:#include<unistd.h>定义函数:

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

头文件:

#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.

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

头文件:

#include <unistd.h>

定义函数:

int setreuID(uID_t ruID,uID_t euID);

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

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

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

 #include <unistd.h>

定义函数:

int setfsuID(uID_t fsuID);

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

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

错误代码:
EPERM:权限不够,无法完成设置.

总结

以上是内存溢出为你收集整理的C语言中设置用户识别码的相关函数的简单讲解全部内容,希望文章能够帮你解决C语言中设置用户识别码的相关函数的简单讲解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1252795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存