Spica*

プログラミングの話。

Linuxの新規グループ追加/グループへユーザを追加

いつも検索してる気がする…。よくadduserとuseraddがどっちか分からなくなって死にそうになる

Ubuntu/CentOS で動いたやつ

# myuserが所属するグループを表示
$ groups myuser

# mygroupというグループを追加
$ groupadd mygroup

# myuserという既存ユーザを、mygroupに所属させる
$ gpasswd -a myuser mygroup

$ groups myuser
$ cat /etc/group |grep neske

以上。$を頭につけて解説してますが、だいたいroot権限いります。 以下は逆引き的な細かい話。

Ubuntuでsudoできるようにする

標準で/etc/sudoers%admin ALL=(ALL) ALLっていう記述があるので、以下のようにadminグループ作ってユーザを追加するとおk

$ groupadd admin
$ gpasswd -a myuser admin

CentOSでsudoできるようにする

/etc/sudoers# %wheel ALL=(ALL) ALLっていう記述があるので、まずは頭の#コメントアウト

# %wheel  ALL=(ALL)  ALL
↓
%wheel  ALL=(ALL)  ALL

で、$ cat /etc/group |grep wheelとかやると分かるけど、すでにwheelグループはあるので、sudoを許可するユーザに対してwheelグループつければおk

$ gpasswd -a myuser admin

グループに所属している複数のユーザが、それぞれ書き込める共用ディレクトリ作る

以下の例では、書き込むユーザはみんなrubyグループに属している必要があります。

# 共有ディレクトリ作成
$ mkdir /opt/shared

# 所有グループをrubyへ変更
$ chgrp -R ruby /opt/shared

# グループに対して書き込み権限付与
$ chmod g+w /opt/shared

# グループ内で作成したファイル/ディレクトリにも、グループ権限を継承させるようにする。setgid
$ chmod g+s /opt/shared

# これでもう書き込めるはず。
$ touch /opt/shared/hoge

# もし書き込めない場合は、設定が間違っているかグループにログインした状態になってない場合があり。接続しなおしてみるか、以下のようにnewgrp <グループ名>を使ってみるとかするとおk
$ newgrp ruby
$ touch /opt/shared/hoge