您的位置:首页 > 运维架构 > Linux

Linux 常用C函数(用户组篇3)

2007-05-22 10:48 239 查看
Linux 常用C函数(用户组篇3)
2007-03-22 11:41
 [align=left]
setregid(设置真实及有效的组识别码) [/align]
[align=right]相关函数 [/align]
[align=left]setgid,setegid,setfsgid
[/align]
[align=right]表头文件 [/align]
[align=left]#include<unistd.h>
[/align]
[align=right]定义函数 [/align]
[align=left]int setregid(gid_t rgid,gid_t egid);
[/align]
[align=right]函数说明 [/align]
[align=left]setregid()用来将参数rgid设为目前进程的真实组识别码,将参数egid设置为目前进程的有效组识别码。如果参数rgid或egid值为-1,则对应的识别码不会改变。
[/align]
[align=right]返回值 [/align]
[align=left]执行成功则返回0,失败则返回-1,错误代码存于errno。
[/align]
 
[align=right]
[/align]
[align=right]
[/align]
[align=left]
setreuid(设置真实及有效的用户识别码) [/align]
[align=right]相关函数 [/align]
[align=left]setuid,seteuid,setfsuid
[/align]
[align=right]表头文件 [/align]
[align=left]#include<unistd.h>
[/align]
[align=right]定义函数 [/align]
[align=left]int setreuid(uid_t ruid,uid_t euid);
[/align]
[align=right]函数说明 [/align]
[align=left]setreuid()用来将参数ruid 设为目前进程的真实用户识别码,将参数euid 设置为目前进程的有效用户识别码。如果参数ruid 或euid值为-1,则对应的识别码不会改变。
[/align]
[align=right]返回值 [/align]
[align=left]执行成功则返回0,失败则返回-1,错误代码存于errno。
[/align]
[align=right]附加说明 [/align]
[align=left]请参考setuid()。
[/align]
 
[align=right]
[/align]
[align=right]
[/align]
[align=left]
setuid(设置真实的用户识别码) [/align]
[align=right]相关函数 [/align]
[align=left]getuid,setreuid,seteuid,setfsuid
[/align]
[align=right]表头文件 [/align]
[align=left]#include<unistd.h>
[/align]
[align=right]定义函数 [/align]
[align=left]int setuid(uid_t uid)
[/align]
[align=right]函数说明 [/align]
[align=left]setuid()用来重新设置执行目前进程的用户识别码。不过,要让此函数有作用,其有效的用户识别码必须为0(root)。在Linux下,当root使用setuid()来变换成其他用户识别码时,root权限会被抛弃,完全转换成该用户身份,也就是说,该进程往后将不再具有可setuid()的权利,如果只是向暂时抛弃root 权限,稍后想重新取回权限,则必须使用seteuid()。
[/align]
[align=right]返回值 [/align]
[align=left]执行成功则返回0,失败则返回-1,错误代码存于errno。
[/align]
[align=right]附加说明 [/align]
[align=left]一般在编写具setuid root的程序时,为减少此类程序带来的系统安全风险,在使用完root权限后建议马上执行setuid(getuid());来抛弃root权限。此外,进程uid和euid不一致时Linux系统将不会产生core dump。
[/align]
 
[align=right]
[/align]
[align=right]
[/align]
[align=left]
setutent(从头读取utmp 文件中的登录数据) [/align]
[align=right]相关函数 [/align]
[align=left]getutent,endutent
[/align]
[align=right]表头文件 [/align]
[align=left]#include<utmp.h>
[/align]
[align=right]定义函数 [/align]
[align=left]void setutent(void);
[/align]
[align=right]函数说明 [/align]
[align=left]setutent()用来将getutent()的读写地址指回utmp文件开头。
[/align]
[align=right]附加说明 [/align]
[align=left]请参考setpwent()或setgrent()。
[/align]
 
[align=right]
[/align]
[align=right]
[/align]
[align=left]
utmpname(设置utmp 文件路径) [/align]
[align=right]相关函数 [/align]
[align=left]getutent,getutid,getutline,setutent,endutent,pututline
[/align]
[align=right]表头文件 [/align]
[align=left]#include<utmp.h>
[/align]
[align=right]定义函数 [/align]
[align=left]void utmpname(const char * file);
[/align]
[align=right]函数说明 [/align]
[align=left]utmpname()用来设置utmp文件的路径,以提供utmp相关函数的存取路径。如果没有使用utmpname()则默认utmp文件路径为/var/run/utmp。
[/align]
[align=right]返回值 [/align]
[align=left]
[/align]
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux c file