具有传统Unix权限的多个Linux组不可能拥有一个文件。(但是,可以使用ACL来实现。)
但是您可以使用以下变通办法并创建一个新的组(例如devFirms
),其中将包括该组的所有用户devFirmA
,devFirmB
以及devFirmC
。
您可以通过以下方式创建新的用户组:
sudo addgroup NEWGROUPNAME
首先,您可能必须安装id-utils
以获得lid
-command:
sudo apt-get install id-utils
然后,您可以运行以下代码行,轻松将的所有用户复制SOURCEGROUP
到TARGETGROUP
。当然,您必须为每个要复制的组运行一次命令。不要忘记用实际的组名替换大写的占位符。
for u in $(lid -g -n SOURCEGROUP); do sudo usermod -a -G TARGETGROUP $u; done
因此,在您的情况下,您将必须运行命令(一次所有行):
sudo addgroup devFirms &&
for u in $(lid -g -n devFirmA); do sudo usermod -a -G devFirms $u; done &&
for u in $(lid -g -n devFirmB); do sudo usermod -a -G devFirms $u; done &&
for u in $(lid -g -n devFirmC); do sudo usermod -a -G devFirms $u; done
请注意,这些命令仅复制作为源组当前成员的所有用户。以后添加的每个用户也必须使用adduser
命令手动添加到您的普通组中。只需再次将大写的占位符替换为实际的用户名和组名(devFirms
):
sudo adduser NEWUSER TARGETGROUP
感谢Justin Ethier在Unix&Linux.SE上的回答:SE:将一个组的所有用户添加到另一个组?