UJP - 技術情報1

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

Solaris 10でグループとユーザを作成する

Solaris 10でグループとユーザを作成する


0.改訂履歴

  • 2009.05.30 新規作成

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)

  • 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)

  • 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#
  • 消えている事が確認できた.


広告スペース
Google