我为此搜索了一下(可能是不正确的关键字),但我没有找到如何做到这一点。
考虑以下命令:
useradd -s /bin/bash -m user1
useradd -s /bin/bash -m user2
useradd -s /bin/bash -m user3
我希望以这种方式创建的任何新用户也被添加到名为 的组中test
,但不需要在我每次运行时都指定它useradd
。我希望默认情况下发生这种情况。
我的意思是在创建之后user1
,当我运行时grep user1 /etc/group
,它应该分为两组:test
和user1
。
那可能吗?我正在使用 CentOS。
是的,您可以设置在创建新用户后执行的默认操作。不可否认,这是在
man useradd
接近尾声的 FILES 部分中记录的:这意味着
/etc/shadow-maint/useradd-post.d/
目录中的任何脚本都将在创建新用户后执行。在这些脚本中,任何对环境变量的使用$SUBJECT
都将替换为新创建的用户名。现在,run-parts
有点奇怪,需要非常具体的命名方案。但是,在您的情况下,由于您只需要一个脚本,因此将其命名为01groups
. 因此,首先,创建目录:接下来,创建一个包含以下内容的文本文件:
确保该
test
组存在。如果没有,请先使用sudo groupadd test
.最后,将该文件另存为
/etc/shadow-maint/useradd-post.d/01groups
并使其可执行:就是这样。如果您现在创建一个新用户,该用户也将被添加到您的额外组中。例如,我使用以下命令在我的系统上对其进行了测试:
进而:
如您所见,新用户已自动添加到额外的
test
组中。请注意,这现在将发生在所有由 添加到系统的用户身上useradd
。这可能不是最好的主意。我不知道你为什么要这样做,但这是一种方式。我认为最简单的方法是扩展
$PATH
变量。所以在 bash 中你这样做(请替换路径):.bashrc
把它放在or的末尾.bash_profile
。useradd
然后在文件夹中放置一个名为的脚本myscripts
。你必须写一个简短的脚本来做你想做的事。useradd
使用绝对路径调用原始二进制文件。useradd
另一种方法是用 bash 脚本替换原始二进制文件并重命名原始文件。你可以跑看看它在哪里。但是您的系统可能会变得不稳定。我推荐使用第一种方式。