ユーザアカウントとグループアカウント
確認用
ユーザ・グループ関連ファイルの更新日付を確認する
エイリアスを作る。
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を指定するとエラーが発生する。
ユーザの削除
$ userdel test
/etc/passwdからユーザtestの行が削除された。
/etc/shadowからユーザtestの行が削除された。
/etc/groupからユーザtestの行が削除された。
/etc/gshadowからユーザ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:::
ログインできるようになる。
※ロックされていないユーザを指定しても、エラーは発生しない。