gpt4 book ai didi

linux setgid()权限错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:03 25 4
gpt4 key购买 nike

所以一个用户有一个主要组,可能属于其他补充组。

假设用户A主要组是G,补充组G+1,G+2

用户A运行一个程序是否可以将组id改为G+1

默认情况下,我知道组 ID 将设置为 G,但是当我在程序下面运行时会抛出错误。erroris:不允许操作,其中 4 是用户所属的补充组。

根据手册错误EPERM 调用进程没有特权(不具备CAP_SETGID能力),gid与调用进程的真实组ID或保存的set-group-ID不匹配。

如何列出进程的能力?

保存的 set-group-id 是什么意思?

int
main ()
{
int x = 0;
char *error = "erroris";
x = setgid (4);

printf ("%d", x);
perror (error);

}

最佳答案

一个问题太多了!

问题一:无法使用setgid 更改为不同的组id

失败原因:用户不是root,用户不是euid 0,用户没有CAP_SETGID

问题 2:如何列出进程的功能

答案 2:使用 cap_get_proccap_to_text列出进程的能力

问题三:保存的set-group-id是什么意思

答案 3:当您成功使用其中一个 sete*id() 调用时,它会在保存的 id 中记录旧的。这允许您恢复到保存的值,因为这是您可以使用 set 调用更改的 ID 之一。

关于linux setgid()权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20387188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com