Linux

我們如何在 Linux 中通過單個命令將多個使用者添加到一個組中?

  • April 8, 2019

我必須使用

usermod -G groupname username

每次將使用者添加到組。有沒有辦法通過單行來做到這一點

usermod -G groupname user1,user2,user3

您可以使用一個命令設置組的成員列表:

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

您可以將 bash 大括號擴展與 eval 一起使用

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

或循環命令

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

引用自:https://unix.stackexchange.com/questions/511165