Linux用户组和文件系统权限

Linux用户组和文件系统权限

假设我有 groups G1、 、G2、 和 user U

用户U是这两个组的成员,但是G1其主要组。

在我的文件系统中有一个F可以通过G2.现在,如果U想要访问,F唯一的方法就是执行newgrp G2,然后访问,这不是我希望我的用户一直做的事情。

我应该怎么办?

具体例子:

ajalali@ws47lx:/projects/gchrupala$ stat .
  File: `.'
  Size: 17          Blocks: 0          IO Block: 1048576 directory
Device: 15h/21d Inode: 150         Links: 3
Access: (0775/drwxrwxr-x)  Uid: ( 6052/gchrupala)   Gid: ( 6000/nis_users)
Access: 2015-03-05 15:34:46.260662858 +0100
Modify: 2013-03-05 16:35:16.000000000 +0100
Change: 2013-06-10 20:40:25.418034444 +0200
 Birth: -
ajalali@ws47lx:/projects/gchrupala$ id
uid=1004(ajalali) gid=1001(ajalali) groups=1001(ajalali),6000(nis_users),6060(admin),6061(sudo),1625200000(admins),1625200001(lsv_local),1625200035(compute_server_users),1625200036(contact_server_users)
ajalali@ws47lx:/projects/gchrupala$ mkdir tmp
mkdir: cannot create directory `tmp': Permission denied

用户 (ajalali) 是拥有当前文件夹 (6000) 的组的成员,但无法在那里进行任何操作,因为它的主要组 (1001) 不是拥有当前文件夹的组。

只有用户newgrp nis_users先这样做,然后尝试在那里创建一个文件夹,它才会起作用。

答案1

这看起来像是 NFS 问题。是否涉及 NFS?

在基于 Debian 的系统(可能还有其他系统)上运行的 NFS 服务器被配置为忽略补充组,除非另​​有明确说明。确保--manage-gids已提供给rpc.mountd程序。在 Debian 系统上,这是通过编辑/etc/default/nfs-kernel-server并确保其RPCMOUNTDOPTS=--manage-gids存在来完成的。

相关内容