Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

UNIX(Linux)
Beginner

  1. What is UNIX (Linux)? - Japanese Only
  2. What are Distributions? - Japanese Only
  3. About CentOS, macOS, and CUI - Japanese Only
  4. Installing CentOS with Virtualization Software and macOS CUI Environment - Japanese Only
  5. Login, root User, and Shutdown - Japanese Only
  6. Command Structure and Important Notes - Japanese Only
  7. File System and Navigating Directories (cd and pwd) - Japanese Only
  8. Key Directories and Listing Contents (ls) - Japanese Only
  9. Advanced Directory Navigation (cd) and Paths - Japanese Only
  10. Advanced ls Command (Part 1) and Dotfiles - Japanese Only
  11. Advanced ls Command (Part 2) - Japanese Only
  12. Tab Completion for Input - Japanese Only
  13. Creating Directories (mkdir) - Japanese Only
  14. Quick File Creation (touch) and About Files - Japanese Only
  15. Standard I/O, Redirection (> and >>), echo, and cat - Japanese Only
  1. Deleting Files and Directories (rm) - Japanese Only
  2. Copying Files and Directories (cp) - Japanese Only
  3. Moving and Renaming Files and Directories (mv) - Japanese Only
  4. What is the vi Editor? - Japanese Only
  5. Basic vi Usage (Part 1) - Japanese Only
  6. Basic vi Usage (Part 2) - Japanese Only
  7. Remote Operations via Terminal (SSH and Tera Term) - Japanese Only
  8. Installing Software (yum and Package Managers) - Japanese Only
  9. User Overview, Verification, Creation, and Switching (adduser and su) - Japanese Only
  10. User Passwords, Deletion, Modification, and sudo (passwd, userdel, usermod) - Japanese Only
  11. About Groups and the groups Command - Japanese Only
  12. Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod) - Japanese Only
  13. About Permissions - Japanese Only
  14. Setting Permissions (chmod and chown) - Japanese Only
  1. Home
  2. UNIX(Linux)Beginner - Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod)

Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod) - Japanese Only

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

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

まずグループを追加するには『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を確認したわけではないのですが大体そんな感じで構成されていますね。

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

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .