进程控制---更改进程的用户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的主要内容,如果未能解决你的问题,请参考以下文章