Как мы можем добавить нескольких пользователей в группу с помощью одной команды в Linux?

У меня такая же проблема в нескольких местах со службой Verizon ADSL. «Шлюз по умолчанию» находится в другой подсети. В нашем случае нам нужны общедоступные IP-адреса, чтобы использовать ipsec site-to-site vpn. Для этого нам нужно перевести шлюз DSL в режим моста, чтобы общедоступный IP-адрес находился на нашем маршрутизаторе, а не на шлюзе DSL.

Большинство провайдеров могут сделать это довольно легко, но у Verizon, похоже, возникают трудности. Используя шлюз D-Link 2750B DSL, переводя его в режим моста, специалисты Verizon советуют мне использовать шлюз по умолчанию в отдельной подсети. Я тестировал его на своем ноутбуке с Windows 7, и хотя Windows выдает сообщение об ошибке: «Вы идиот, и это плохая идея - вы все еще хотите сохранить эту конфигурацию? Да / Нет», он работает .

Однако программы с более строгими проверками работоспособности, похоже, защищают вас от вас самих ...

Тем не менее, я не могу не думать, что должен быть способ подделать это ...

{{ 1}}
1
08.04.2019, 12:54
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
2
27.01.2020, 23:22

Вы можете использовать расширение скобок bash с eval

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

или повторите команду

for i in user1 user2 user3; do usermod -G groupname $i; done
1
27.01.2020, 23:22

Теги

Похожие вопросы