getresuid()和setresuid()有什么作用?

时间:2015-12-24 12:37:28

标签: linux unix setuid

函数getresuid(& arg1,& arg2,& arg3)和setresuid(arg1,arg2,arg3)有什么作用?

如果给出了对这些功能的真正基本解释,那就太棒了。

1 个答案:

答案 0 :(得分:6)

来自credentials(7) man page(删节):

  

在Linux上,每个进程都有以下用户和组标识符:

     
      
  • 真实用户ID和真实组ID。这些ID决定了谁拥有该流程。

  •   
  • 有效的用户ID和有效的组ID。内核使用这些ID来确定进程在访问共享资源(如消息队列,共享内存和信号量)时将具有的权限。在大多数UNIX系统上,这些ID还确定访问文件时的权限。但是,Linux使用文件系统ID执行此任务。

  •   
  • 已保存的set-user-ID和已保存的set-group-ID。这些ID用于set-user-ID和set-group-ID程序,以保存执行程序时设置的相应有效ID的副本。 set-user-ID程序可以通过在其真实用户ID和保存的set-user-ID中的值之间来回切换其有效用户ID来假定和删除权限。

  •   

这些函数在一次调用中获取并设置所有这三个UID。和往常一样,请参阅完整的手册页以获取完整的详细信息。