linux'id'命令报告groups = 那个过程属于。何时以及如何填写?
我正在编写一个suid / sgid程序,看起来这些组永远不会填满我的进程,也许只是巧合,但是对于nfs挂载的文件系统的权限也无法正常工作(通过顺便说一下,我玩过no_root_squash并没有帮助)
答案 0 :(得分:2)
在大多数情况下,补充组由login
设置。
如果您想自己设置,则需要getgrouplist()
中的setgroups()
和<grp.h>
功能 - 请注意,您需要成为root用户才能调用{{1}成功。
答案 1 :(得分:1)
谢谢,setgroups()几乎就是答案。但是,我最终使用的initgroups()运行得非常好。在我将setuid远离root之前进行了调用。
在手册页中找到了这个 名称 initgroups - 初始化补充组访问列表
概要 #包括 #include
int initgroups(const char *user, gid_t group);
显然,如果这些组来自LDAP,您需要执行此操作才能正确填写它们。
答案 2 :(得分:0)
多个组成员资格通常在登录时设置但不会使用太多。 SOP通常是为每个用户提供他们自己的组。
网络文件系统通常不尊重本地客户端root权限。