我需要改变一群用户的组员身份。
我如何
nogroup主要组? 基本上我需要将当前在clients组中的所有用户改为nogroup ,并将clients作为辅助组添加到他们。
这可以通过shell来完成,而不需要单独编辑每个用户?
- 列出所有用户?
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 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
(上面的代码片段没有经过testing,但是在3秒的双重检查后看起来不错,也是为csh编写的,因为这是FreeBSD用户的默认shell)