linux id no_squash_root

时间:2009-09-28 21:55:34

标签: linux setuid usergroups

linux'id'命令报告groups = 那个过程属于。何时以及如何填写?

我正在编写一个suid / sgid程序,看起来这些组永远不会填满我的进程,也许只是巧合,但是对于nfs挂载的文件系统的权限也无法正常工作(通过顺便说一下,我玩过no_root_squash并没有帮助)

3 个答案:

答案 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权限。