在Linux中如何通过一条命令将多个用户添加到一个组中?

在Linux中如何通过一条命令将多个用户添加到一个组中?

我必须使用

usermod -G groupname username

每次将用户添加到组中。有没有办法通过单行来做到这一点

usermod -G groupname user1,user2,user3

答案1

您可以将 bash 大括号扩展与 eval 一起使用

eval 'usermod -aG groupname '{user1,user2,user3}';'

或循环命令

for i in user1 user2 user3; do usermod -aG groupname $i; done

注意:在附加组-G时为用户设置组。-aG

答案2

你可以一个命令即可查看群组的成员列表:

gpasswd -M user1,user2,user3,... groupname

但要使用它添加,您需要获取现有列表:

gpasswd -M "$(getent group groupname | awk -F: '$4 {print $4","}')"user1,user2,user3,... groupname

但它更容易使用xargs或手动循环:

for u in user1 user2 ...
do
    gpasswd -a "$u" groupname
done

或者:

$ cat file
user1
user2
...
$ xargs -a file -n 1 gpasswd groupname -a

相关内容