进程控制---更改进程的用户ID和组ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程控制---更改进程的用户ID和组ID相关的知识,希望对你有一定的参考价值。

  Linux提供了setuid函数和seteuid函数来更改与进程相关的用户ID,和进程相关的用户ID有“实际用户ID、有效用户ID和保存的设置用户ID”
======================================================
函数原型:
技术分享
技术分享
函数参数:
  • uid:要设置的用户ID
返回值:
  • 调用成功时返回 0
  • 调用失败时返回 -1
====================================================
  • 当进程的有效用户ID是root的时候,调用setuid函数可以将进程的实际用户ID、有效用户ID和保存的设置用户ID都设置成 uid
  • 当进程的有效用户ID是普通用户的时候,而且setuid函数的参数 uid 和进程的实际用户 ID或者保存的设置用户ID 相等时,此函数会将进程的有效用户ID设置为 uid,而实际用户ID和保存的设置用户ID不会变
  • 上面两种情况都不满足的时候,调用此函数失败。
seteuid函数和setuid函数的情况类似,区别就是在root用户下只会修改 进程有效用户ID 一项,不会像setuid 函数一样修改三项用户ID。
====================================================
这里说明保存的设置用户ID的作用:
  • 保存的设置用户ID 是在创建进程时用来保存有效用户ID 的副本的,如果执行程序期间使用setuid 函数改变了有效用户ID,则可以利用此ID来恢复原来的有效用户ID。
  • 用户程序是获取不到保存的设置用户ID的,当使用setuid函数来恢复有效用户ID的时候,必须给出具体的 euid 的值。

技术分享

技术分享
 

以上是关于进程控制---更改进程的用户ID和组ID的主要内容,如果未能解决你的问题,请参考以下文章

进程控制

进程控制

进程控制(十三)---用户ID与用户名之间的转换

Linux_Unix系统编程Chapter9 进程凭证

Unix环境高级编程进程控制

LinuxC——4.进程控制