まず困ったときにですが、 man pw
すると地獄を見るので、
pw group help
、 pw group hoge help
してみましょう。
また、コマンドラインの記述上で見やすいため group add
みたいにスペースを空けて記述していますが、つなげて groupadd
といった形でもコマンドは通ります。(ドキュメント記載はつなげている書き方なので、そちらが一般的かもしれない)
情報を確認するためのコマンド
ユーザーの一覧表示
sudo pw user show -a
※ sudo id hogeGroupNameOrId
という方法もありますが、ちょっとしたコツがいるので、まずはこちらで。
個別ユーザーの情報表示
sudo pw user show hogeUserNameOrId
すべてのグループの一覧表示
sudo pw group show -a
内容を操作するためのコマンド
グループの追加
sudo pw group add hogeGroupNameOrId
グループの削除
sudo pw group del hogeGroupNameOrId
グループへのユーザー追加
sudo pw group mod hogeGroupNameOrId -m hogeUserNameOrId
グループからのユーザー削除
sudo pw group mod hogeGroupNameOrId -d hogeUserNameOrId
グループを作成し、ユーザーも追加
sudo pw group mod hogeGroupNameOrId -M hogeUserNameOrId
TIPS
ユーザーが存在するグループを削除するとどうなる?
FreeBSDそのもののシステム的に致命的なことは起きませんが、アプリレベルでは弊害が出てしまうことがあります。
(たとえば、WEBサーバーグループの www
を消しちゃったとか。)
また、 ls
したときのファイルやディレクトリのパーミッションにおけるグループ指定はIDの表記になります。
そして、FreeBSDはとても賢いので(グループ情報を持っているファイルを手動で書き換えたりしていなければ)同じグループ名で再作成すると、同じグループIDでちゃんと復活します。
ただし、グループに追加されていたユーザーは全部消えてしまうため、再度追加していく必要があります。
ユーザーの複数指定
ちなみにグループに追加や削除するユーザーは、
カンマ区切りで複数指定できます。
sudo pw group mod hogeGroupNameOrId -m hogeUserNameOrId1,hogeUserNameOrId2
一方、グループの方はカンマ区切りで複数操作はできません。sudo pw group add hogeGroup1,hogeGroup2
などとすると、下記のようなエラーが返るはずです。
pw: invalid character `,' at position 10 in userid/group name