Назад | Перейти на главную страницу

FreeBSD / FreeNAS: Как изменить группу для нескольких пользователей?

Мне нужно изменить членство в группе для группы пользователей.

Как я

  1. перечислить всех пользователей?
  2. изменить несколько пользователей на nogroup основная группа?
  3. добавить второстепенные / вспомогательные группы нескольким пользователям?

В основном мне нужно изменить всех пользователей, которые в настоящее время находятся в clients группа в nogroup и добавить clients как вспомогательная группа к ним.

Можно ли это сделать через оболочку без индивидуального редактирования каждого пользователя?

  1. перечислить всех пользователей?
pw usershow -a
  1. изменить несколько пользователей на основную группу nogroup?

Есть сотня разных способов сделать это ... Я бы:

foreach u ("list" "of" "users")
    pw usermod -n $u -g NewPrimaryGroup
end

Вы даже можете получить список пользователей с помощью подкоманды, например pw groupshow OldGroupName | sed -e "s/.*://" -e "s/,/\ /"

  1. добавить второстепенные / вспомогательные группы нескольким пользователям?

Опять же, несколько способов сделать это ...

Если вы знаете полный список дополнительных групп, в которые должны входить пользователи:

pw usermod -n UserName -G "Secondary Group List"

Если вы не знаете полный список или просто хотите добавить пользователей в группу:

pw groupmod -n SecondaryGroup -m NewUserName

И удаление аналогично

pw groupmod -n SecondaryGroup -d OldUserName

В основном мне нужно изменить всех пользователей, которые в настоящее время находятся в группе клиентов, на nogroup и добавить к ним клиентов в качестве вспомогательной группы.

foreach u (`pw groupshow clients | sed -e "s/.*://" -e "s/,/\ /"`)
    pw usermod $u -g nogroup
    pw groupmod clients -m $u
end

(Приведенный выше фрагмент не протестирован, но выглядит хорошо после 3 секунд двойной проверки, также написан для csh поскольку это оболочка FreeBSD по умолчанию для пользователей)