ユーザとグループ管理


Linuxサーバー管理者の技術を2日で学べる「初心者向けリナックスセミナー」
30日掛かって覚えるプロの技術を、たった2日間で学習できます。
リナックスマスター2日間集中セミナー【CentOS7.1版】
 (今すぐ↑をクリックしてください。)

■ユーザーアカウントと/etc/passwd
Linuxは、複数のユーザーが同時に利用することが出来るマルチユーザーシステムです。
ユーザーの情報は/etc/passwdファイルに保存されています。

/etc/passwdファイルは、プレーンテキストなので、catコマンドやlessコマンドなどで
内容を参照することができます。

/etc/passwdファイルは、1行につき1ユーザーアカウントの情報が記述されており、
項目は「:」で区切られています。

-----------------------------------------
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-----------------------------------------

項目は7つあり、下記の意味を持っています。
daemon ユーザー名、システムないで一意のアカウント名
ユーザー名は同じシステム内で重複はできません。
x パスワード、暗号化されたパスワード
現在ではシャドウパスワードが使われる為、「x」が入ります。
2 UID、ユーザーを識別する為の一意のID
rootは必ず0であり、一般ユーザーは通常、100以降の番号が割り当てられます。0〜99はシステム管理用に使用されます。
2 GID、グループを識別するための一意のID
GIDとグループ名との対応は、/etc/groupファイルで定義されます。
daemon GECOS、コメントとしてユーザーのフルネームやその他の情報を表示
/sbin ホームディレクトリ、ユーザーのホームディレクトリ
/sbin/nologin デフォルトシェル、ユーザーのデフォルトシェル

/etc/passwdファイルは、一般ユーザーでも読み出すことができます。

パスワードが暗号化されているとはいえ、時間をかければ暗号解読が可能なため、
現在では、シャドウパスワードを使用し、パスワード情報は/etc/shadowファイルに
格納されています。

/etc/shadowファイルは、スーパーユーザー(root)しか読み出しが出来ないため、
セキュリティが強化されています。

■グループアカウントと/etc/group
グループの設定は、/etc/groupファイルに保存されており、
ユーザーアカウントと/etc/passwdで紹介した/etc/passwdファイル同様、
1行につき1グループアカウントの情報が記述されています。
また、項目は「:」で区切られています。

-----------------------------------------
mail:x:12:mail,postfix
-----------------------------------------

項目は4つあり、下記の意味を持っています。
mail グループ名
グループの名称が設定されます。
x グループパスワード
グループメンバー用のパスワードが設定されます。現在ではシャドウパスワードが使われる為、「x」が入ります。
12 GID
グループを識別するためのGIDが設定されます。
mail,postfix グループメンバー
このグループをサブグループとして所属するユーザーのユーザー名が設定されます。複数のユーザーが所属している場合は、「,」で区切られます。

上記の例では、mailというグループにmail、postfixユーザーが所属しています。
デフォルトのグループ割り当てについては、一般ユーザーはすべてGIDが100のグループに所属させるものや、
ユーザーアカウントを作成するごとにそのユーザー専用のグループも作成して割り当てるなど、
ディストリビューションによって異なります。

ユーザーは、複数のグループに所属することが出来ます。
ユーザーにとっての基本となるグループをプライマリグループ(基本グループ)、
それ以外に参加しているグループをサブグループ(参加グループ)と呼びます。

ファイルやディレクトリを作成した時に所有グループとして
デフォルトで適用されるのがプライマリグループです。
ユーザーのプライマリグループは、/etc/passwdファイルのGIDフィールドで確認できます。

■コマンドを用いたユーザーとグループ管理
Linuxでは、グラフィカルなツールを使用してユーザーやグループの管理を行うことも出来ますが、
ツールはディストリビューションによって異なります。

ディストリビューションに依存せずユーザー、グループ管理が行えるよう、
コマンドを使用した操作ができるようになるのが望ましいです。

そこで、今回はユーザー、グループ管理コマンドの「useradd」を紹介します。

ユーザーアカウントを作成するには、useraddコマンドを使用します。
書式は下記のとおりです。

-----------------------------------------
useradd(オプション)ユーザー名
-----------------------------------------

オプションは下記の通りになります。
-c コメント コメントフィールドを指定する
-d パス ホームディレクトリを指定する
-g グループ名/GID プライマリグループを指定する
-G グループ名/GID プライマリグループ以外に所属するグループを指定する
-s パス ログインシェルを指定する
-D デフォルトの設定値を表示もしくは設定する

次の実行例では、コメント、ホームディレクトリ、ログインシェルを指定して、
新規ユーザーtomohiroを作成しています。

-------------------------------------------------------------------
# useradd -c "Linux User" -d /home/tomohiro -s /bin/bash tomohiro
-------------------------------------------------------------------

■ホームディレクトリのデフォルトファイル
ユーザーアカウントを作成すると、通常同時にホームディレクトリも作成されます。
その際、基本的な設定ファイルなど、どのユーザーにも必要と思われるファイルも
同時に配布出来ると非常に便利です。

ホームディレクトリ作成時に配布したいファイルは、
雛形として/etc/skelディレクトリに置いておきます。

ホームディレクトリが作成される際には、/etc/skelディレクトリ内のファイルが
新規に作成されるディレクトリにコピーされます。
(ファイルの所有者は、新規に作成されたユーザーに変更されます。)

下記は、/etc/skelディレクトリの一例になります。
------------------------------------------------------------------
[root@Tiger ~]# ls -la /etc/skel/
合計 20
drwxr-xr-x. 2 root root 4096 1月 14 14:22 2014 .
drwxr-xr-x. 80 root root 4096 12月 4 11:14 2014 ..
-rw-r--r--. 1 root root 18 7月 18 22:15 2013 .bash_logout
-rw-r--r--. 1 root root 176 7月 18 22:15 2013 .bash_profile
-rw-r--r--. 1 root root 124 7月 18 22:15 2013 .bashrc
------------------------------------------------------------------

■コマンドを用いたユーザーとグループ管理(usermod)
usermodコマンドは、既存のユーザーアカウントを変更します。
/etc/passwdファイルの該当フィールドを書き換えた場合と
同じになり、useraddコマンドと多くのオプションが共通しています。

usermodコマンドのオプションは下記の通りです。
-c コメント コメントフィールドを変更する
-d パス ホームディレクトリを変更する
-g グループ名/GID プライマリグループを変更する
-G グループ名/GID プライマリグループ以外に所属するグループを変更する
-s パス ログインシェルを変更する
-L パスワードをロックして一時的に無効化する
-U パスワードのロックを解除する

「-g」オプションを使用すると、プライマリグループを変更できます。
これに対して、「-G」オプションを使用すると、プライマリグループは
変更せずに所属するグループを変更します。

下記の例では、ユーザーtomohiroがプリあまりグループ以外に所属する
グループをunyoに変更しています。
-------------------------------------------------------------------
# usermod -G unyo tomohiro
-------------------------------------------------------------------

ユーザーが長期休暇なので、一時的にアカウントを使用しなくなる場合、
セキュリティの観点から、そのアカウントを利用不可にすることが
考えられます。

この場合、アカウントを削除するのではなく、「-L」オプションを使用して
ロックをかけるとアカウントを一時的に無効化出来ます。

下記の例では、ユーザーtomohiroのアカウントを無効にしています。
-------------------------------------------------------------------
# usermod -L tomohiro
-------------------------------------------------------------------

■コマンドを用いたユーザーとグループ管理(userdel)
userdelコマンドは、既存のユーザーアカウントを削除します。
ユーザーアカウントを削除するだけでは、ユーザーが利用していた
ホームディレクトリが残ってしまいます。

ホームディレクトリも削除するには、-rオプションを使用します。

userdelコマンドのオプションは下記の通りです。
-r ホームディレクトリも同時に削除する

下記の例では、ユーザーtomohiroをホームディレクトリごと削除しています。
-------------------------------------------------------------------
# userdel -r tomohiro
-------------------------------------------------------------------

■コマンドを用いたユーザーとグループ管理(passwd)
passwdコマンドは、パスワードを変更します。
root(スーパーユーザー)以外は、自分のパスワードのみを変更できます。

また、usermodコマンドと同様に、ユーザーアカウントをロックすることもできます。

passwdコマンドのオプションは下記の通りです。
-l パスワードをロックして一時的に無効化する
-u パスワードのロックを解除する

下記の例では、ユーザーmiyazakiをロックして無効化しています。
-------------------------------------------------------------------
# passwd -l miyazaki
ユーザー miyazaki 用のパスワードをロック。
passwd: 成功
-------------------------------------------------------------------
下記の例では、ユーザーmiyazakiのロックを解除しています。
-------------------------------------------------------------------
# passwd -u miyazaki
ユーザー miyazaki 用のパスワードをロック解除。
passwd: 成功
-------------------------------------------------------------------

■シャドウパスワード
現在のシステムはシャドウパスワードが採用されているため、
暗号化されたパスワードが/etc/shadowファイルに保存されています。

/etc/shadowファイルはrootのみが読み取り出来るため、
シャドウパスワード以前に利用されていた/etc/passwdファイルに
パスワードを保存していた頃よりセキュリティが向上しています。

------------------------------------------------------------
# ls -l /etc/shadow
---------- 1 root root 951 3月 31 15:06 2015 /etc/shadow
------------------------------------------------------------

下の例では、ユーザーtomohiroの/etc/shadowファイルの内容を表示しています。
------------------------------------------------------------
# cat /etc/shadow | grep tomohiro
tomohiro:$6$6Lzm3/SK$n2hswFKcKSLrlsed95rimmTQkoKYm2/LgGP56rIL4RbmwH//TsV2BMKrw2mL9y/YE.nzYNEeXyAnpf1F66DDj/:16525:0:99999:7:::
------------------------------------------------------------
↑暗号化されたパスワードが、/etc/shadowファイルの
第2フィールドに格納されていることが分かります。


■CentOS7.1サーバー構築マニュアルを無料プレゼント
 「CentOS7.1」のサーバー構築手順、「VMware Player」の
 ダウンロードとインストール手順をまとめたマニュアルを
 無料でプレゼントしています。


 詳しくは↓のページで説明していますので、今すぐクリックしてダウンロードしてください。
 無料マニュアルをダウンロードする  無料マニュアルをダウンロードする