Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

UNIX(Linux)
入門編

  1. UNIX(Linux)とは
  2. ディストリビューションとは
  3. CentOSとMacOSとCUIについて
  4. 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
  5. ログインとrootユーザーとシャットダウン等について
  6. コマンドの構造と注意点について
  7. ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
  8. 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
  9. ちょっと高度なディレクトリの移動(cd)とパスについて
  10. 『ls』コマンドの応用(1)とドットファイルについて
  11. 『ls』コマンドの応用(2)
  12. タブキーを使った入力補完について
  13. ディレクトリの作成方法(mkdir)について
  14. ファイルの簡易作成(touch)とファイルについて
  15. 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
  1. ファイルとディレクトリの削除(rm)について
  2. ファイルとディレクトリのコピー(cp)について
  3. ファイルとディレクトリの移動と名前変更(mv)について
  4. viエディタとは
  5. viの基本的な使い方(1)
  6. viの基本的な使い方(2)
  7. ターミナル(sshとTera Term)を使ったリモート操作について
  8. ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
  9. ユーザーの概要と確認と追加と切り替え(adduserとsu)について
  10. ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
  11. グループの概要と確認方法(groups)について
  12. グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
  13. パーミッション(権限)について
  14. パーミッションの設定方法(chmodとchown)について
  1. トップページ
  2. UNIX(Linux)入門編 - グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について

グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について

みなさまどももももーもです。

続きましてグループの追加とか削除とかユーザーの追加方法とかについてやっていきましょう。

まずグループを追加するには『groupadd』くんを使います。使い方はとっても簡単で第1引数に追加したいグループ名をバシッと入力すればOKです。以下は『gtest』というグループを追加してみました。

[root@localhost ~]# groupadd gtest

これを『/etc/group』で確認すると

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
gtest:x:501:

最後の部分に『gtest:x:501:』が追加されてますね。これで追加はOKでございます。

続いてグループの設定変更についてです。グループの設定を変更したいぜーとなったら『groupmod』くんを使えばOKなのですがこの子は色々な事を変更出来るようになっているため使用する際はオプションを付ける必要があったりします。なのでよく使われる2つのオプションについても同時に確認していきましょう。

まず名前を変更する事の出来る『-n』オプションです。これを付けつつ第1引数に変更後のグループ名、第2引数に変更前のグループ名を記載して実行すればグループ名がバシッと変わります。こんな感じですね。

[root@localhost ~]# groupmod -n gtest1 gtest
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
test:x:500:
gtest1:x:501:

『gtest1:x:501: 』になっているのが確認出来たと思います。第1引数に指定するのは変更前のグループ名かと思いきや変更後のグループ名になりますのでここは間違えないようご注意です。

続いて『-g』オプションですね。これはグループを管理している番号であるGIDを変更する事の出来るオプションになります。ただそれほど頻繁に使うものでもないのでこれは『-g』オプションの存在を覚えておく程度でOKかなって感じです。使い方は以下のように第1引数に変更したいGIDの番号、第2引数に変更対象としたいグループ名を書けばOKです。

[root@localhost ~]# groupmod -g 1000 gtest1
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
test:x:500:
gtest1:x:1000:

『gtest1:x:1000:』って感じでちゃんと変更できてますね。『groupmod』についてはとりあえずこの2つをおさえておけばOKです。

続いてグループの削除についてですが、これは『groupdel』を使えばOKです。こちらも『groupadd』くんと同じように第1引数に削除したいグループ名を記述してあげます。以下は先程作った『gtest』を削除してみた感じですね。

[root@localhost ~]# groupdel gtest

ここでもういっちょ『/etc/group』を確認してみましょう。

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:

先程と比べてみると『gtest:x:501:』が削除されてますね、これで削除の方もOKです。

さて続いてグループにユーザーを追加したり削除したりする方法について確認していきましょう。

ユーザーを追加または削除する場合は『gpasswd』くんを使います。このコマンドはコマンド名に『passwd』(パスワード)って単語が入っておるわけでグループにパスワードを設定したり出来るというか本来はそっちの方がメインなのかもですがそれよりもユーザーの追加削除を行う目的で使用される事の多いコマンドになりますね。

ユーザーを追加する場合は『-a』オプションを、ユーザーを削除する場合は『-d』オプションを付けつつ第1引数にユーザー名、第2引数に対象とするグループ名を渡して実行してあげればOKなのでその辺を色々と試してみましょう。

まず『groupadd』コマンドで再度『gtest』というグループを作って

[root@localhost ~]# groupadd gtest

新規ユーザーの『test』くんと『test1』くんを作ってあげます。

[root@localhost ~]# adduser test
[root@localhost ~]# adduser test1

この状態で以下のコマンドを叩いてみます。以下は追加オプションである『-a』を使っておるのがミソですね。

[root@localhost ~]# gpasswd -a test gtest
adding user test to group gtest

「adding user test to group gtest」、つまり「追加したっすよー!」って教えてくれてますね。これで『test』くんが『gtest』グループに追加されました。

念のため『/etc/group』を確認してみると

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
gtest:x:500:test
test:x:501:
test1:x:502:

上記の『gtest:x:500:test』って部分に注目すると『test』くんがバッチリ追加されているようです。

次に『-d』を使って削除してみましょう。まあこれは『-a』と大して使い方変わらんのでざざざっとやっちゃいます。というわけでどどん。

[root@localhost ~]# gpasswd -d test gtest
Rremoving user test from group gtest
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
gtest:x:500:
test:x:501:
test1:x:502:

『gtest:x:500:』って感じで『test』って記述がちゃんと消えててますね。『-a』と『-d』の使い方はこんな感じです。

ここで少し応用技なのですが『-M』というオプションが居ます。この子を使うと現在のグループに属しているユーザーを一旦クリアした後にまとめてどどっと上書きできちゃいますのでちょいと試してみましょう。

まずもう一回『gtest』グループに『test』くんを追加してみます。

[root@localhost ~]# gpasswd -a test gtest
adding user test to group gtest

現在は以下のように『gtest』グループに『test』くんだけが存在している状態なのですが

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
gtest:x:500:test
test:x:501:
test1:x:502:

この状態で『-M』くんを使って『root』さんと『test1』くんというグループ構成に変更してみます。

んで『-M』くんを使う場合の第1引数にはユーザー構成、第2引数には該当するグループ名を書く感じになるのですが第1引数の記述にちょいと注意点があり、複数ユーザーを同時に記述する際の各ユーザーの区切りは『,』を使用する形になります。

つまり『gpasswd -M root test1 gtest』ではなく『gpasswd -M root,test1 gtest』になるというような感じですね。更によくやりがちなのが『,』を使ってはいるものの『root, test1』みたいに半角スペースを置いてしまっても完全NGなのでこれもご注意でございますね。引数部分の半角スペースは第1引数と第2引数とかの各引数の区切りに使用するものなので間違えないよう気をつけて下さい。

さてでは『-M』くんを使ったコマンドを実際に叩いてみます。

[root@localhost ~]# gpasswd -M root,test1 gtest

んで確認してみると

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:
gtest:x:500:root,test1
test:x:501:
test1:x:502:

『gtest:x:500:root,test1』って感じでばっちり上書き出来てますね。

サービスのリニューアルとかで「ごそっと消してごそっと追加したい」なんて場合はちょいちょいあったりするのですがその場合は『-M』を使うようにすると色々と捗るので超おすすめでございます。

これまでの紹介で『/etc/group』ファイルがちょいちょい出てきておりますが「これってテキストファイルだしそのまま編集したらどうなるのー?っていうかこれを直接編集することもできそうだなー?(*'ω'*)」って思った方が居るかと思います。実はそれ大正解なので一気に設定したい場合などは『/etc/group』ファイルを直接編集されちゃって下さい。

ただちょいと注意点があり、『/etc/group』ファイルを編集する場合は『vi』とか『vim』でもOKなのですが『vigr』コマンドを使って編集するのが推薦されていたりします。

『vigr』コマンドを使うと『/etc/group』ファイルの更新が終わったら反映してくれたり編集中は他のユーザーが触れないようちゃんとロックをかけてくれたりという事をしてくれるので著者的にもおすすめですね。使い方はただ『vigr』って叩くだけでOKです。

[root@localhost ~]# vigr

すると『vi』が立ち上がり『/etc/group』の編集画面になりますので元々の記述とかを参考にしつつポチポチ入力して『:w』で保存してしまえばそれがグループの設定として反映されます。

ただOSによって違うかもですが文法を細かく見てくれたりはしてくれないので記述ミスには気をつけるようにして下さい。

あと最後になりますがグループの操作は基本的に『root』さんまたは管理者権限を持ったユーザーじゃないと出来ないのでそこはご注意です。全てのOSを確認したわけではないのですが大体そんな感じで構成されていますね。

次の記事ではパーミッションあたりについて色々とやっていきます。ではではこの辺で。またお会いしましょう。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。