6.ユーザー管理


6.1 ユーザー管理

6.1.1 ユーザーとグループ
Linux(Unix)でのユーザーは、必ず1つ以上のグループに所属します。

プライマリグループ、セカンダリグループともに、「そのグループに所属している」という扱いは同じです。
ただし、新規にファイルやディレクトリを作成した時の所有グループは、そのユーザーのプライマリグループになります。
では、確認してみましょう。

6.1.2 新規ユーザの登録
Plamo Linux(98)には(つーか、Plamoには) adduser という便利なのがあります。通常はこれを使えば問題ないでしょう。
ただ、せっかくなので一般的な useradd を使ってみましょう。
※adduser の例はこちらをクリック(見たらブラウザの×で閉じてください)
実際はもっと細かく設定できます。検索して調べてみてください。
機能 新規ユーザーの登録/既存ユーザーの情報変更
書式  useradd / usermod   [-c comment] [-d home_dir]
                [-g p_group] [-G s_group]
                [-s shell] [-u uid] user
オプション  ()内はディフォルト値
 -c    コメントの指定(未設定)
 -d    ホームディレクトリの指定(/home/ユーザー名)
 -g    プライマリグループの指定(ユーザー名と同じ名前)
 -G    セカンダリグループの指定(未設定)
 -m    ホームディレクトリが無い時作成
 -s    ディフォルトシェルの指定(/bin/bash)
 -u    ユーザーIDの指定(現在の最大値+1)
 -D    ディフォルト値の表示
useraddコマンドでは、オプションによって詳細にユーザーの項目を設定することもできますが、設定しない項目についてはディフォルト値が摘要されます。
また、追加したユーザーにはパスワードが設定されていないため「ログイン」することができません。
そのため、passwd でパスワードを設定します。
では、ユーザの登録とパスワードを設定してみましょう。
なんとなくできたみたいだけど・・・・ログインできるかな?

  ↑
あれ?ディフォルトのユーザーホームが無いって?バグ?
じゃー usermod -d /home/takaq1 takaq1 で作れるかな?

  ↑
できないー これってやっぱり Plamo Linux(98)のバグ?
/etc/passwd、/etc/shadow にエントリはあるのにユーザのポームディレクトリが作られていません。
気を取り直してユーザー情報の変更と finger によりユーザー情報を参照してみましょう。

  ↑
やっぱダメす。コメント入れたのに Name: (null) です。おかしいっす。/etc/passwd のエントリも変わってません。
あきらめて、userdel しちゃいます。

  ↑
/home/takaq1 が無いから・・・・エラーは当然すね! /etc/passwd、/etc/shadow のエントリがなくなりました。
削除は正常のようです。
でも、ちらっと調べて useradd を次のようにして入力したら設定できました。
(参考にした資料では、useradd username でもOKに書いてました!・・・それだとダメだったのかも?)
ログインしたら・・・・

 ↑
だそうです。次回からは adduser を使いましょう。
6.1.3 新規グループの登録
グループの登録は、 groupadd コマンドで行います。
ユーザーが所属するグループは、groups コマンドで確認できます。
6.1.4 ユーザー情報の変更
既存のユーザーの情報を変更するには、usermod コマンドを使用します。
新規ユーザーの登録でも少し触れましたね!
では、takaq1にログインしてみましょう。

  ↑
おおー確かに変わっています。
6.1.5 ユーザー・グループの削除
ユーザーの削除は userdel 、グループの削除は groupdel の各コマンドで行います。
では、先に作ったユーザー : takaq1 とグループ linux を削除してみましょう。
userdel は -r オプションを付けると、ホームディレクトリも削除します。
groupdel の結果は後述する「ユーザー情報設定ファイル」で見てみましょう。
6.1.6 ユーザー情報設定ファイル
ユーザー情報は、次のファイルに保存されます。
ファイル名 保存それる情報
 /etc/passwd  ユーザー情報(パスワードは除く)
 /etc/shadow  パスワード情報(暗号化されている)
 /etc/group  グループ情報
【/etc/passwd】
xc13_1:~# cat /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:
man:x:13:15:man:/usr/man:
postmaster:x:14:12:postmaster:/var/spool/mail:/bin/bash
postfix:x:15:16:postfix:/dev/null:/dev/null
sshd:x:400:17:sshd privsev:/var/empty:/bin/false
ftp:x:404:1::/home/ftp:/bin/bash
guest:x:405:100:guest:/dev/null:/dev/null
pcguest:x:405:100:guest:/dev/null:/dev/null
wnn:x:127:1:Wnn:/usr/lib/wnn:
nobody:x:65534:100:nobody:/:
takaq:x:1000:100:TAKAQ,,,:/home/takaq:/bin/bash    
xc13_1:~#
xc13_1:~# ls -l /etc/passwd
-rw-r--
r-- 1 root root 831 Apr 22 22:50 /etc/passwd
xc13_1:~#
保存形式 -> ユーザ名 : x (パスワード) : ユーザーID : グループID : コメント : ホームデイレクトリ : シェル

このファイルは一般ユーザーにも読み取り権限があるので、パスワードの欄は "x" とし、パスワードは root のみがアクセスできる /etc/shadow で管理しています。(昔はここに暗号化されたパスワードを保存していました)
【/etc/shadow】
xc13_1:~# cat /etc/shadow
root:tiXLlvBBnXE8I:12878:0:::::
halt:*:9797:0:::::
operator:*:9797:0:::::
shutdown:*:9797:0:::::
sync:*:9797:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
mail:*:9797:0:::::
postmaster:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
man:*:9797:0:::::
games:*:9797:0:::::
guest:*:9797:0:::::
pcguest:*:9797:0:::::
wnn:*:9797:0:::::
nobody:*:9797:0:::::
takaq:Vk79E2QTu.8Fg:12878:0:99999:7:::
xc13_1:~#
xc13_1:~# ls -l /etc/shadow
-rw------- 1 root root 448 Apr 22 22:50 /etc/shadow   
xc13_1:~#
【/etc/group】
xc13_1:~# cat /etc/group
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon 
sys::3:root,bin,adm
adm::4:root,adm,daemon  
tty::5:root
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root
floppy::11:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:man
postfix::16:
postdrop::17:
sshd::18:
utmp::22:
games:34:
users::100:games
nogroup::65534:
xc13_1:~#
保存形式 -> グループ名 : パスワード(未使用) : グループID : セカンダリグループとして所属するユーザー

6.2 ユーザー管理情報設定

6.2.1 スケルトンディレクトリ
ユーザー登録時には、スケルトンディレクトリにあるファイルがユーザーのホームディリクトリにコピーされます。
あらかじめ、設定ファイル等をスケルトンディレクトリに格納しておくことで、ユーザーに使いやすい環境の提供ができます。
では、ちらっと見てみましょう。
6.2.2 umask
新規にディレクトリやファイルを作成した場合のディフォルトのモード(ファイルのアクセスモード)は umask と呼ばれるファイル作成マスクによって決定されます。
Linux上で新規にファイルやディレクトリを作成した時のモードは、アクセス制限のかかっていないモード(通常ファイルは666、ディレクトリは777)と umask で設定された値をビット反転したものとの論理積をとったものになります。
(例1) umask が 022 である場合に作成したファイルのモード
user group other
最初のモード(A)         666 110 110 110
umask値              022 000 010 010
ビット反転した umask値(B)  755 111 101 101
AとBの論理積          644 110 100 100
作成したファイルのモード   644 6 4 4
どれどれ!
(例2) umask が 027 である場合に作成したディレクトリのモード
user group other
最初のモード(A)         777 111 111 111
umask値              027 000 010 111
ビット反転した umask値(B)  750 111 101 000
AとBの論理積          750 111 101 000
作成したディレクトリのモード   750 7 5 0
ほんとだ!ちゃんとなっていますね。
6.2.3 ユーザープライベートグループ
ユーザープライベートグループとは、一般ユーザーが自分の同名のグループにプライマリーグループとしてただ一人だけで所属する考え方です。この方式を利用した場合、全てのユーザーが自分以外は所属していないグループにプライマリーグループとして所属することになります。・・・・・ってなんかよくわかんないですね!

 

ユーザープライベートグループを利用しているユーザーの umask のディフォルト値は 002、ユーザープライベートグループを利用していないユーザーや root ユーザーの場合は 022 になります。
しかし、Plamo Linux(98)では、/etc/profile にユーザープライベートグループの場合の umask の記述はありません。
ディフォルトの umask が 022 という記述があるだけです。 
もしかしたら、ユーザープライベートグループという概念がないのかも・・・・・・・
もし、この概念があればグループとしての協働作業を容易にすることの例を書こうと思ったのですが・・・残念です。

6.3 ユーザーの変更

6.3.1 ユーザーの変更
現在のユーザーを変更するためには、su コマンドを利用します。
【su コマンド】
su ユーザー名 引数で指定したユーザーに変更します。ユーザー省略時は root が指定されます。
この形式の場合、設定変更は行わずにユーザーが変更されます。
su - ユーザー名 引数で指定したユーザーに変更します。ユーザー省略時は root が指定されます。
この形式の場合、変更後のユーザーでログインした場合と同様に扱われます。
root ユーザーが su を実行する際にはパスワードなしで任意のユーザーに変更できます。
一般ユーザーが su を実行する際には、変更対象となるユーザーのパスワードを入力する必要があります。
全てのユーザーが su コンンドを使って権限変更できるはとても危険な事ですので、su コマンドのセキュリティについては、次項で見てみましょう。
6.3.2 wheel グループ
su コマンドを実行することにより、システム上の全てのユーザーが権限を変更することができるということはセキュリティ上とても危険なことです。そこで su コマンドでユーザー権限を変更することができる一般ユーザーを wheel グループに所属するユーザーに限定しましょう。

インストールした Plamo Linux(98) では、ディフォルトでは一般ユーザーも su コマンドでスーパーユーザーになることができてしまいます。
まずは、これをできないようにしてみましょう。

設定は、 /etc/login.defs です。
では、一般ユーザーが su コマンドでスーパーユーザーになれなくなったことを確認してみましょう。

  ↑
なるほど!!!!!
しかし、このユーザーだけは作業の利便性をよくするため su コマンドでスーパーユーザーになれるように wheel グループに所属させましょう。
・・・で、su コマンドでスーパーユーザーになれるかな?

  ↑
あれ? やっぱできないよー
・・・・ちらっと調べたら、この方法とは違うようです。他のLinuxやFreeBSDでも一般ユーザーで su コマンドでスーパーユーザーになれるのは wheel ユーザーに属しているユーザーなのですが・・・
調べた資料では vi で /etc/group を次のように書くようです。 wheel グループありますけど意味無し?
・・・で、これで su コマンドでスーパーユーザーになれるかな?

  ↑
やっとできましたね。やれやれです。
さて、セキュリティ上ではあと一つあります。それは、リモートから root ユーザーでの接続ができないことです。
私のPlamo Linux(98)では、telnet ではディフォルトでリモートからの root ログインはできなくなっています。
これはこれでよしとします。(FreeBSDでもそうなっています)
ただ、SSH では root ログインができてしまいます。(FreeBSDでは SSH でもできません)
これも何か設定があるかとは思いますが、SSH だからよしとしておきます。
telnetもSSHもルータとファイアウォールで外部からの接続ポート閉じていますから!!

いずれ、telnet はサービス停止しておきます。

Prev Top Next
ディスク管理 目次 バックアップ

サイトトップへ