自由気ままに書いちゃおう

好きなことをつらつらと・・・

【RHEL8】ユーザとグループについて

今回はユーザとグループについてです。
サーバにログインする際にはユーザとパスワードが必要です。
また、ユーザは必ず一つ以上のグループに所属します。

■はじめに

ユーザ/グループ、パスワードを説明する上で、
先に以下の通り情報を纏めておきます。

f:id:guri2o1667:20201020111126p:plain
上記の通り、ユーザ/グループ/パスワードはそれぞれのファイルに格納されます。

■/etc/passwdについて

f:id:guri2o1667:20201020111247p:plain

コロン区切りです。
rootユーザの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。

f:id:guri2o1667:20201020111728p:plain

① ユーザ名: サーバ内で重複しない名前です。
② パスワード: xがデフォルトであり、現在は使われておりません。
③ ユーザID(=UID): ユーザのIDです。
④ グループID(=GID): ユーザが所属するプライマリグループのIDです。
⑤ コメント:  コメント欄です。必要であれば記載します。(省略可能)
⑥ ホームディレクトリ: ユーザのホームディレクトリを表します。
⑦ デフォルトシェル: ログイン時に実行されるシェルのパスを表します。

■/etc/groupについて

f:id:guri2o1667:20201020112133p:plain

コロン区切りです。
若干紛らわしいのですが、グループ名が記載されています。
ユーザ名とグループ名が同一な理由は、デフォルトではユーザ作成時にユーザ名と同じグループが作成されるためです。

rootグループの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。

f:id:guri2o1667:20201020112617p:plain

① グループ名: サーバ内で重複しないグループ名
② パスワード: xがデフォルトであり、現在は使われておりません。 
③ グループID(=GID): グループのIDです。
④ 所属ユーザ: グループに参加しているユーザ名

1点補足ですが、
④はグループ名と同一のユーザ以外で所属しているユーザを表しています。
そのため、
「root:x:0:」と記載されていた場合、グループの所属ユーザはrootのみです。
「root:x:0:testuser1」と記載されていた場合、グループの所属ユーザはrootとtestuser1です。

 

■/etc/shadowについて

f:id:guri2o1667:20201020113019p:plain

コロン区切りです。
rootユーザの情報を抜粋し説明致します。
尚、説明しやすいようにコロン区切りで項番を振っております。

f:id:guri2o1667:20201020113349p:plain

① ユーザ名: ユーザ名が記載されています。
② パスワード: 暗号化されている為、乱数になっています。
③ パスワードを最後に変更した日: 1970年1月1日からの経過日数
④ パスワード変更可能日数: パスワードが変更可能にある日(0の場合は、いつでも変更可能を意味します。)
⑤ パスワード有効期限: パスワードの有効期限日数(99999の場合は、無期限を意味します。)
⑥ 警告発生日: 上記⑤の何日前に警告を出力するかを意味します。
⑦ アカウント使用不能日: 上記⑤超過後、アカウントが使用不可となるまでの日数
⑧ アカウント自体の有効期間: アカウントが使用不可になるまでの日数
⑨ 予約: ※現在は使われていません※

■補足:UNIX時刻、UNIX時間について

※UNIX時刻もUNIX時間も同じ意味です。
※表記ゆれがあるため、どちらも記載しております。

1970年1月1日0時0分0秒を基準日として、経過秒数や経過日数を表記します。

具体的には、/etc/shadowのところで出てきた⑤18554を例にすると、

f:id:guri2o1667:20201020121055p:plain

date --date "19700101 18554 days " +%Y%m%d

上記の通り、パスワード変更を行った日にちが出力することができます。
この場合、2020年10月19日にパスワード変更を行ったことがわかります。

上記は/etc/shadowの5カラム目なので経過日数を表しており、
dateコマンドにより具体的な日にちを算出することができました。

以上です。