Мне нужно изменить членство в группе для группы пользователей.
Как я
nogroup
основная группа?В основном мне нужно изменить всех пользователей, которые в настоящее время находятся в clients
группа в nogroup
и добавить clients
как вспомогательная группа к ним.
Можно ли это сделать через оболочку без индивидуального редактирования каждого пользователя?
- перечислить всех пользователей?
pw usershow -a
- изменить несколько пользователей на основную группу nogroup?
Есть сотня разных способов сделать это ... Я бы:
foreach u ("list" "of" "users")
pw usermod -n $u -g NewPrimaryGroup
end
Вы даже можете получить список пользователей с помощью подкоманды, например pw groupshow OldGroupName | sed -e "s/.*://" -e "s/,/\ /"
- добавить второстепенные / вспомогательные группы нескольким пользователям?
Опять же, несколько способов сделать это ...
Если вы знаете полный список дополнительных групп, в которые должны входить пользователи:
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 по умолчанию для пользователей)