FreeBSD/FreeNAS:如何更改多个用户的组?

FreeBSD/FreeNAS:如何更改多个用户的组?

我需要为一群用户更改组成员身份。

我如何

  1. 列出所有用户?
  2. 将多个用户更改为nogroup主要组?
  3. 为多个用户添加次要/辅助组?

基本上,我需要将当前组中的所有用户更改clientsnogroup并将其添加clients为辅助组。

可以通过 shell 完成此操作而无需单独编辑每个用户吗?

答案1

  1. 列出所有用户?
pw usershow -a
  1. 将多个用户更改为 nog​​roup 主要组?

有上百种不同的方法可以做到这一点......我会:

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

基本上,我需要将当前位于客户组中的所有用户更改为无组,并将客户作为辅助组添加给他们。

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

(上述代码片段未经测试,但经过 3 秒的仔细检查后看起来不错,也是为cshFreeBSD 为用户提供的默认 shell 而编写的)

相关内容