Linuxで1つのコマンドでグループに複数のユーザーを追加するには?

Linuxで1つのコマンドでグループに複数のユーザーを追加するには?

使用すべき

usermod -G groupname username

ユーザーがグループに追加されるたびに。一行でこれを行う方法はありますか?

usermod -G groupname user1,user2,user3

答え1

evalでbash中括弧拡張を使用できます

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

またはループコマンド

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

注:-Gグループを接続するときにユーザーのグループを設定します。-aG

答え2

あなたはできます置く1 つのコマンドでグループのメンバーのリストを表示します。

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

関連情報