Solaris 10でグループとユーザを作成する
Solaris 10でグループとユーザを作成する
0.改訂履歴
1.はじめに
このドキュメントでは,Solaris 10にて,グループとユーザの作成,変更,削除の手順を説明する.変更・削除した時のホームディレクトリの扱いについて確認したり,アカウント作成時のデフォルト設定値であるdefgroup, defgname, defparent, defskel, defshell, shdefinact, defexpire, defauthorization, defrole, defprofile, defproj, defprojname, defaultdeflimitpriv, defdefaultpriv, deflock_after_retries等の値について説明している.
2.グループの管理
この章では,グループIDの作成,変更,そして削除について確認する.
2.1.現在のグループの確認
bash-3.00# cat /etc/group root::0: other::1:root bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root mail::6:root tty::7:root,adm lp::8:root,adm nuucp::9:root staff::10: daemon::12:root sysadmin::14: smmsp::25: gdm::50: webservd::80: postgres::90: nobody::60001: noaccess::60002: nogroup::65534: bash-3.00#
|
- postgresはあるけどmysqlは無いのですね...
2.2.グループの追加(groupadd)
- グループの追加は,groupaddコマンドを使う.
- 次の例では,グループIDは1000で,グループ名をujpとしている.
bash-3.00# /usr/sbin/groupadd -g 1000 ujp bash-3.00#
|
bash-3.00# cat /etc/group root::0: other::1:root bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root mail::6:root tty::7:root,adm lp::8:root,adm nuucp::9:root staff::10: daemon::12:root sysadmin::14: smmsp::25: gdm::50: webservd::80: postgres::90: nobody::60001: noaccess::60002: nogroup::65534: ujp::1000: bash-3.00#
|
- 確認できた.
- グループIDに何も付けなければ,一番最後のIDからの連番となる.
bash-3.00# /usr/sbin/groupadd ujptest bash-3.00# cat /etc/group root::0: other::1:root bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root mail::6:root tty::7:root,adm lp::8:root,adm nuucp::9:root staff::10: daemon::12:root sysadmin::14: smmsp::25: gdm::50: webservd::80: postgres::90: nobody::60001: noaccess::60002: nogroup::65534: ujp::1000: ujptest::1001: bash-3.00#
|
- グループIDが1001にカウントアップされている事が確認できた.
2.3.グループの変更(groupmod)
/usr/sbin/groupmod -n 新グループ名 旧グループ名
|
bash-3.00# /usr/sbin/groupmod -n ujpadmin ujp bash-3.00# cat /etc/group root::0: other::1:root bin::2:root,daemon sys::3:root,bin,adm adm::4:root,daemon uucp::5:root mail::6:root tty::7:root,adm lp::8:root,adm nuucp::9:root staff::10: daemon::12:root sysadmin::14: smmsp::25: gdm::50: webservd::80: postgres::90: nobody::60001: noaccess::60002: nogroup::65534: ujpadmin::1000: ujptest::1001: bash-3.00#
|
-
変更されている事が確認できた.
- グループIDを変更するには,新しいグループIDと既存のグループ名を指定する.
bash-3.00# grep ujptest /etc/group ujptest::1001: bash-3.00# /usr/sbin/groupmod -g 1002 ujptest bash-3.00# grep ujptest /etc/group ujptest::1002: bash-3.00#
|
- この例では,グループIDを1001から1002に変更して確認している.
2.4.グループの削除(groupdel)
- グループを削除する際には,groupdelコマンドにグループ名を指定して実行する.
bash-3.00# grep ujptest /etc/group ujptest::1002: bash-3.00# groupdel ujptest bash-3.00# grep ujptest /etc/group bash-3.00#
|
- この例では,ujptestグループを削除し,/etc/groupファイルを確認して,グループが削除されている事が確認できた.
3.ユーザの管理
3.1.現在のユーザの確認
- 単体でアカウント管理を行っている場合のユーザアカウントは,/etc/passwdファイルに保存されている.
- /etc/passwdファイルを確認する.
bash-3.00# cat /etc/passwd root:x:0:0:Super-User:/:/usr/bin/bash daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico smmsp:x:25:25:SendMail Message Submission Program:/: listen:x:37:4:Network Admin:/usr/net/nls: gdm:x:50:50:GDM Reserved UID:/: webservd:x:80:80:WebServer Reserved UID:/: postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh svctag:x:95:12:Service Tag UID:/: nobody:x:60001:60001:NFS Anonymous Access User:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/: bash-3.00#
|
- ファイル名はpasswdだが,パスワードは記載されていない.(/etc/shadowファイルにパスワードが記載されている)
3.2.ユーザを作成する(useradd)
/usr/sbin/useradd -u 1001 -g 1000 -d /export/home/ujp -m -s /bin/bash ujp
|
項目 |
内容 |
-u |
ユーザIDを指定する. 使われてないIDを指定する. |
-g |
グループIDを指定する. グループ名を指定する場合は-Gとする. 既に存在しているグループを指定する. |
-d |
ホームディレクトリを指定する.デフォルトでは,/homeディレクトリ以下となる. |
-m |
ホームディレクトリを作成する. |
-s |
シェルを指定する. デフォルトでは,/bin/shとなる. |
最後 |
ユーザ名を指定する. |
- 以前のSolarisでは,useraddの後にユーザ名を指定する様になっていたが,Solaris 10では一番最後のパラメータに付ける事になる.
3.3.ユーザに有効期限をつけて,それを確認する
bash-3.00# useradd -e "October 6,2009" exptest bash-3.00# useradd -e 10/6/09 exptest1 bash-3.00#
|
- 数字で指定しているv"10/6/09"は,2009年10月6日の意味となる.
- ここで指定した値は,/etc/shadowファイルに設定される.
bash-3.00# grep exptest /etc/shadow exptest:*LK*::::::14523: exptest1:*LK*::::::14523: bash-3.00#
|
- この数値の14523は,1970年1月1日からの経過日数となっている.
3.4.ユーザのデフォルト値について
- ユーザを作成する時に,最低限必要なパラメータはユーザ名だけである.
- その他のパラメータがどのように設定されるかは,useraddコマンドでデフォルト値を表示させれば良い.
bash-3.00# /usr/sbin/useradd -D group=other,1 project=default,3 basedir=/home skel=/etc/skel shell=/bin/sh inactive=0 expire= auths= profiles= roles= limitpriv= defaultpriv= lock_after_retries= bash-3.00#
|
- この値は,defadduerファイルに記載されている.
bash-3.00# cat /usr/sadm/defadduser # Default values for useradd. Changed Sat May 30 18:16:23 2009
defgroup=1 defgname=other defparent=/home defskel=/etc/skel defshell=/bin/sh definact=0 defexpire= defauthorization= defrole= defprofile= defproj=3 defprojname=default deflimitpriv= defdefaultpriv= deflock_after_retries= bash-3.00#
|
- OSをインストールした際に,useraddコマンドを使って生成されたようである.
- これらの意味は,次の通りである.
項目 |
内容 |
defgroup |
グループID |
defgname |
グループ名 |
defparent |
ホームディレクトリ |
defskel |
シェルのスケルトン(ひな形)の設置してあるディレクトリ. |
definact |
アカウント無効になる非使用期間. 日数を指定し,その期間利用されないとアカウントロックとなる. 0を指定すると無期限. |
defexpire |
アカウントの失効日時. |
defauthorization |
アカウントの認証方式. 認証方式は,/etc/security/auth_attrに定義されている. |
defrole |
ロール.ロールは,/etc/user_attの定義内で,type=roleで指定されている. |
defprofile |
プロファイル. /etc/security/prof_attrに定義されており,profilesコマンドで確認できる. |
defproj |
所属しているプロジェクトの情報. /etc/projectに定義されている. |
defprojname |
deflimitpriv |
limitの特権について. |
defdefaultpriv |
デフォルトの特権 |
deflock_after_retries |
ここで指定した回数ログインに失敗したらアカウントをロックする. |
- プロジェクトとかプロファイルという考え方は昔は無かったハズ...
3.5.ユーザ情報を変更する(usermod)
bash-3.00# /usr/sbin/usermod -l modtest exptest bash-3.00#
|
- この例では,exptestユーザを,新しくmodtestに変更している.
- 正し,次の様にホームディレクトリは変更されない.
bash-3.00# grep modtest /etc/passwd modtest:x:1004:1::/home/exptest:/bin/sh bash-3.00#
|
- -dオプションを使う事で,ホームディレクトリを変更する事ができる.
bash-3.00# /usr/sbin/usermod -d /home/modtest modtest bash-3.00# grep modtest /etc/passwd modtest:x:1004:1::/home/modtest:/bin/sh bash-3.00#
|
- ただし,ホームディレクトリのファイルがある場合は,自動的に変更されない.
3.6.ユーザのホームディレクトリの設定するとファイルも移動されるのか確認する
- 先ほどのテストではホームディレクトリが無い状態だったので,ユーザを作成する際に,自動的にディレクトリを作成する.
bash-3.00# /usr/sbin/useradd -d /export/home/dirtest -m dirtest 64 ブロック bash-3.00#
|
bash-3.00# grep dirtest /etc/passwd dirtest:x:1003:1::/export/home/dirtest:/bin/sh bash-3.00#
|
- 設定してあるディレクトリが存在しているか,確認する.
bash-3.00# ls -la /export/home/dirtest 合計 12 drwxr-xr-x 2 dirtest other 512 5月 30日 18:53 . drwxr-xr-x 5 root root 512 5月 30日 18:53 .. -rw-r--r-- 1 dirtest other 144 5月 30日 18:53 .profile -rw-r--r-- 1 dirtest other 136 5月 30日 18:53 local.cshrc -rw-r--r-- 1 dirtest other 157 5月 30日 18:53 local.login -rw-r--r-- 1 dirtest other 174 5月 30日 18:53 local.profile bash-3.00#
|
- usermodコマンドで,ディレクトリを変更する.
bash-3.00# /usr/sbin/usermod -l dirnew -d /export/home/dirnew dirtest bash-3.00#
|
bash-3.00# grep dirnew /etc/passwd dirnew:x:1003:1::/export/home/dirnew:/bin/sh bash-3.00#
|
bash-3.00# ls -la /export/home/dirnew /export/home/dirnew: ファイルもディレクトリもありません。 bash-3.00#
|
- 新しいディレクトリが作成されてない事が確認できた.
- 元のディレクトリを確認する.
bash-3.00# ls -la /export/home/dirtest 合計 12 drwxr-xr-x 2 dirnew other 512 5月 30日 18:53 . drwxr-xr-x 5 root root 512 5月 30日 18:53 .. -rw-r--r-- 1 dirnew other 144 5月 30日 18:53 .profile -rw-r--r-- 1 dirnew other 136 5月 30日 18:53 local.cshrc -rw-r--r-- 1 dirnew other 157 5月 30日 18:53 local.login -rw-r--r-- 1 dirnew other 174 5月 30日 18:53 local.profile bash-3.00#
|
- ディレクリは古い名称のまま残っている.
- ファイルのオーナーは変更が反映されている.
- つまり,usrmodコマンドでpasswdファイルのホームディレクトリを変更しても物理ファイルには変更が加えられない.
3.7.ユーザを削除する(userdel)
bash-3.00# /usr/sbin/userdel dirnew bash-3.00# grep dirnew /etc/passwd bash-3.00#
|
- passwdファイルを見る事で,ユーザの削除が確認できた.
- 次に,ユーザディレクトリがどうなるか確認する.
bash-3.00# /usr/sbin/useradd -d /export/home/deltest -m deltest 64 ブロック bash-3.00#
|
bash-3.00# ls -la /export/home/deltest 合計 12 drwxr-xr-x 2 deltest other 512 5月 30日 19:06 . drwxr-xr-x 7 root root 512 5月 30日 19:06 .. -rw-r--r-- 1 deltest other 144 5月 30日 19:06 .profile -rw-r--r-- 1 deltest other 136 5月 30日 19:06 local.cshrc -rw-r--r-- 1 deltest other 157 5月 30日 19:06 local.login -rw-r--r-- 1 deltest other 174 5月 30日 19:06 local.profile bash-3.00#
|
bash-3.00# /usr/sbin/userdel deltest bash-3.00# ls -la /export/home/deltest 合計 12 drwxr-xr-x 2 1003 other 512 5月 30日 19:06 . drwxr-xr-x 7 root root 512 5月 30日 19:06 .. -rw-r--r-- 1 1003 other 144 5月 30日 19:06 .profile -rw-r--r-- 1 1003 other 136 5月 30日 19:06 local.cshrc -rw-r--r-- 1 1003 other 157 5月 30日 19:06 local.login -rw-r--r-- 1 1003 other 174 5月 30日 19:06 local.profile bash-3.00#
|
- ディレクトリとファイルは残ったままである.
- ファイルのオーナIDが生で見えているのでアカウントは削除されている事が判る.
- 次に,-rオプションを付けてディレクトリを削除してみる.
bash-3.00# /usr/sbin/useradd -d /export/home/deltest1 -m deltest1 64 ブロック bash-3.00# /usr/sbin/userdel -r deltest1 bash-3.00#
|
bash-3.00# ls -la /export/home/deltest1 /export/home/deltest1: ファイルもディレクトリもありません。 bash-3.00#
|