FreeBSDのユーザーグループを管理するコマンドの例

カテゴリー
FreeBSD

まず困ったときにですが、 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

参考資料