函数getresuid(& arg1,& arg2,& arg3)和setresuid(arg1,arg2,arg3)有什么作用?
如果给出了对这些功能的真正基本解释,那就太棒了。
答案 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。和往常一样,请参阅完整的手册页以获取完整的详细信息。