今回はユーザとグループについてです。
サーバにログインする際にはユーザとパスワードが必要です。
また、ユーザは必ず一つ以上のグループに所属します。
本記事は以下の本を参考にしております。
■はじめに
ユーザ/グループ、パスワードを説明する上で、
先に以下の通り情報を纏めておきます。
上記の通り、ユーザ/グループ/パスワードはそれぞれのファイルに格納されます。
■/etc/passwdについて
コロン区切りです。
rootユーザの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。
① ユーザ名: サーバ内で重複しない名前です。
② パスワード: xがデフォルトであり、現在は使われておりません。
③ ユーザID(=UID): ユーザのIDです。
④ グループID(=GID): ユーザが所属するプライマリグループのIDです。
⑤ コメント: コメント欄です。必要であれば記載します。(省略可能)
⑥ ホームディレクトリ: ユーザのホームディレクトリを表します。
⑦ デフォルトシェル: ログイン時に実行されるシェルのパスを表します。
■/etc/groupについて
コロン区切りです。
若干紛らわしいのですが、グループ名が記載されています。
ユーザ名とグループ名が同一な理由は、デフォルトではユーザ作成時にユーザ名と同じグループが作成されるためです。
rootグループの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。
① グループ名: サーバ内で重複しないグループ名
② パスワード: xがデフォルトであり、現在は使われておりません。
③ グループID(=GID): グループのIDです。
④ 所属ユーザ: グループに参加しているユーザ名
1点補足ですが、
④はグループ名と同一のユーザ以外で所属しているユーザを表しています。
そのため、
「root:x:0:」と記載されていた場合、グループの所属ユーザはrootのみです。
「root:x:0:testuser1」と記載されていた場合、グループの所属ユーザはrootとtestuser1です。
■/etc/shadowについて
コロン区切りです。
rootユーザの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。
① ユーザ名: ユーザ名が記載されています。
② パスワード: 暗号化されている為、乱数になっています。
③ パスワードを最後に変更した日: 1970年1月1日からの経過日数
④ パスワード変更可能日数: パスワードが変更可能にある日(0の場合は、いつでも変更可能を意味します。)
⑤ パスワード有効期限: パスワードの有効期限日数(99999の場合は、無期限を意味します。)
⑥ 警告発生日: 上記⑤の何日前に警告を出力するかを意味します。
⑦ アカウント使用不能日: 上記⑤超過後、アカウントが使用不可となるまでの日数
⑧ アカウント自体の有効期間: アカウントが使用不可になるまでの日数
⑨ 予約: ※現在は使われていません※
■補足:UNIX時刻、UNIX時間について
※UNIX時刻もUNIX時間も同じ意味です。
※表記ゆれがあるため、どちらも記載しております。
1970年1月1日0時0分0秒を基準日として、経過秒数や経過日数を表記します。
具体的には、/etc/shadowのところで出てきた⑤18554を例にすると、
date --date "19700101 18554 days " +%Y%m%d
上記の通り、パスワード変更を行った日にちが出力することができます。
この場合、2020年10月19日にパスワード変更を行ったことがわかります。
上記は/etc/shadowの5カラム目なので経過日数を表しており、
dateコマンドにより具体的な日にちを算出することができました。
以上です。
本記事は以下の本を参考にしております。