ユーザアカウントとグループアカウント

確認用

ユーザ・グループ関連ファイルの更新日付を確認する

エイリアスを作る。

alias chkdt='sudo ls -ltr /etc/passwd /etc/shadow /etc/group /etc/gshadow'

「chkdt」を実行する。

$ chkdt
-rw-r--r-- 1 root root   1362 2009-02-10 10:50 /etc/passwd
-rw-r----- 1 root shadow  662 2009-02-10 10:50 /etc/gshadow
-rw-r--r-- 1 root root    802 2009-02-10 10:50 /etc/group
-rw-r----- 1 root shadow  944 2009-02-10 10:59 /etc/shadow


/etc/passwdをタブ区切りで表示する
awk -F : 'BEGIN { print "ユーザ名\tパスワード\tユーザID\tグループID(プライマリグループ)\tコメント\tコメント\tホームディレクトリ\tデフォルトシェル" } { printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",$1,$2,$3,$4,$5,$6,$7,$8}' /etc/passwd


/etc/shadowをタブ区切りで表示する
awk -F : 'BEGIN { print "ユーザ名(ログイン名)\t暗号化されたパスワード\tパスワードの最終変更日\t変更可能最短期間\t未変更可能最長期間\t警告日\tインアクティブ\t失効日\tフラグ(未使用)" } { printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9}' /etc/shadow


/etc/groupをタブ区切りで表示する
awk -F : 'BEGIN { print "グループ名\t(暗号化パスワード)\tグループ番号\tメンバーリスト" } { printf "%s\t%s\t%s\t%s\n",$1,$2,$3,$4}' /etc/group


/etc/gshadowをタブ区切りで表示する
awk -F : 'BEGIN { print "グループ名\t(暗号化パスワード)\tグループ管理者\tグループメンバー" } { printf "%s\t%s\t%s\t%s\n",$1,$2,$3,$4}' /etc/gshadow


ユーザの追加

$ useradd test

/etc/passwdに行が追加された。

test:x:1001:1001::/home/test:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加された。

test:x:1001:

/etc/gshadowに行が追加された。

test:!::


すでに存在するユーザの追加

エラーが発生する


コメントを指定
$ useradd -c マイコメント test

/etc/passwdに行が追加された。

test:x:1001:1001:マイコメント:/home/test:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加された。

test:x:1001:

/etc/gshadowに行が追加された。

test:!::


ホームディレクトリを指定
$ useradd -d /home/yuta test

/etc/passwdに行が追加された。

test:x:1001:1001::/home/yuta:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加された。

test:x:1001:

/etc/gshadowに行が追加された。

test:!::

※不正なパス名(例えば「aaa」)を指定するとエラーが発生する
※存在しないパスを指定してもエラーは発生しない。


プライマリグループを指定
$ useradd -g 1000 test

/etc/passwdに行が追加された。

test:x:1001:1000::/home/test:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加されない。
/etc/gshadowに行が追加されない。
※存在しないgidを指定するとエラーが発生する


プライマリグループ以外のグループを指定
$ useradd -G 107,108,109 test

/etc/passwdに行が追加された。

test:x:1001:1001::/home/test:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupの行が更新された。

mysql:x:107:test
crontab:x:108:test
mlocate:x:109:test

/etc/gshadowに行が追加された。

test:!::

※存在しないgidを指定するとエラーが発生する


デフォルトのシェルを指定
$ useradd -s /bin/csh test

/etc/passwdに行が追加された。

test:x:1001:1001::/home/test:/bin/csh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加された。

test:x:1001:

/etc/gshadowに行が追加された。

test:!::

※存在しないシェルのパスを指定してもエラーは発生しない。


ユーザID(UID)を指定
$ useradd -u 2000 test

/etc/passwdに行が追加された。

test:x:2000:2000::/home/test:/bin/sh

/etc/shadowに行が追加された。

test:!:14284:0:99999:7:::

/etc/groupに行が追加された。

test:x:2000:

/etc/gshadowに行が追加された。

test:!::

※存在するuidを指定するとエラーが発生する


作成したユーザでログインする(ユーザディレクトリ未作成)

※ホームディレクトリ($HOME)が/(ルート)になる。

作成したユーザでログインする(ユーザディレクトリ作成済)

※ホームディレクトリ($HOME)がユーザディレクトリになる。


ユーザの削除

$ userdel test

/etc/passwdからユーザtestの行が削除された。
/etc/shadowからユーザtestの行が削除された。
/etc/groupからユーザtestの行が削除された。
/etc/gshadowからユーザtestの行が削除された。


ログイン中のユーザの削除

エラーが発生する


存在しないユーザの削除

エラーが発生する


ユーザの削除時、ホームディレクトリも同時に削除
$ userdel -r test

ホームディレクトリが削除される。
※ホームディレクトリが存在しない場合、警告が発生する。ユーザは削除される。


パスワードを変更する。

$ passwd test

/etc/shadowの行が更新された。

test:!:14285:0:99999:7:::
↓ パスワードtestで実行
test:$6$UbPO74.w$mwksmf4ufUi44SXn.pOaigeD1fphXmbsaFY38XvmXApO3/O.AgYhP0CDgSowhPzxMzTGUz/JvOd/UqfnvsLjM0:14285:0:99999:7:::
↓ パスワードtestで再度実行
test:$6$62upc3K1$5B.BeSGa8Jm9qAt7PXNQpp.Wk8qjFA52Vw/JZDguIbAGoPLCraqMC3JZAd/aSVR8jopqM8NfTS9kxpmQkMnvA.:14285:0:99999:7:::

※実行タイミングにより暗号化されたパスワードは変更されるらしい。


ユーザアカウントをロックする。
$ passwd -l test

/etc/shadowの行が更新された。

test:$6$62upc3K1$5B.BeSGa8Jm9qAt7PXNQpp.Wk8qjFA52Vw/JZDguIbAGoPLCraqMC3JZAd/aSVR8jopqM8NfTS9kxpmQkMnvA.:14285:0:99999:7:::
↓
test:!$6$62upc3K1$5B.BeSGa8Jm9qAt7PXNQpp.Wk8qjFA52Vw/JZDguIbAGoPLCraqMC3JZAd/aSVR8jopqM8NfTS9kxpmQkMnvA.:14285:0:99999:7::1:

ログインできなくなる。
※すでにロックされているユーザを指定しても、エラーは発生しない。
現在ログイン中のユーザを指定しても、エラー発生しない。


ユーザアカウントをアンロックする。
$ passwd -l test

/etc/shadowの行が更新された。

test:!$6$62upc3K1$5B.BeSGa8Jm9qAt7PXNQpp.Wk8qjFA52Vw/JZDguIbAGoPLCraqMC3JZAd/aSVR8jopqM8NfTS9kxpmQkMnvA.:14285:0:99999:7::1:
↓
test:$6$62upc3K1$5B.BeSGa8Jm9qAt7PXNQpp.Wk8qjFA52Vw/JZDguIbAGoPLCraqMC3JZAd/aSVR8jopqM8NfTS9kxpmQkMnvA.:14285:0:99999:7:::

ログインできるようになる。
※ロックされていないユーザを指定しても、エラーは発生しない。