首页 > 代码库 > 进程控制(十一)---更改进程的用户ID和组ID
进程控制(十一)---更改进程的用户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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。