首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux id no_squash_root

linux id no_squash_root
EN

Stack Overflow用户
提问于 2009-09-28 21:55:34
回答 3查看 815关注 0票数 0

linux 'id‘命令报告进程所属的groups=。何时以及如何填写此信息?

我正在编写一个suid/sgid程序,似乎从来没有为我的进程填充组,也许只是巧合,但是关于nfs挂载文件系统的权限也不能为它正常工作(顺便说一句,我使用过no_root_squash,这没有帮助)。

EN

回答 3

Stack Overflow用户

发布于 2009-09-28 22:08:57

在大多数情况下,补充组由login设置。

如果您想自己设置它们,您将需要<grp.h>中的函数getgrouplist()setgroups() -请注意,您需要是根用户才能成功调用setgroups()

票数 2
EN

Stack Overflow用户

发布于 2009-10-09 17:13:46

谢谢,setgroups()几乎就是答案。然而,我最终使用了initgroups(),它工作得非常好。这个调用是在我离开root执行setuid之前发出的。

在手册页名为initgroups - initialize该补充组访问列表中找到此信息

简介#include #include #include

代码语言:javascript
复制
   int initgroups(const char *user, gid_t group);

显然,如果这些组来自LDAP,那么您需要这样做才能正确地填充它们。

票数 1
EN

Stack Overflow用户

发布于 2009-09-28 22:12:44

  • 多组成员身份通常在登录时设置,但不经常使用。SOP通常是为每个用户提供他们自己的组。
  • 网络文件系统通常不尊重本地客户根权限。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1489579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档