我必须使用
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