passwd と shadow

/etc/passwd

  • システムのアカウントを記録するファイル
  • ユーザーの名前やホームディレクトリなどが「:」で区切られて記述されている
  • パスワードをはじめとする機密情報は、このファイルには記録されない
内容例
riceplanting:x:500:500::/home/riceplanting:/bin/bash

左から順に

riceplanting ユーザー名
x パスワード(情報漏えいを防ぐため x となっている)
500 ユーザーID(rootの場合0)
500 グループID(rootの場合0)
/home/riceplanting ユーザーのホームディレクトリ
/bin/bash ログイン時に使用するシェル

/etc/shadow

  • /etc/passwd に記録されていない機密情報が記録されている
内容例
riceplanting:$6$N8VByM7Z$mudSIJSmItY2l4wnhqJv8MvhsKWmjstvwiE.nuOaR3Wtqq7QYdsCJGIBD9YpIezdrqsjogkxzVvcFGXKYs6Li.:15785:0:99999:7:::

左から順に

riceplanting ユーザー名
$6~中略~6Li. 暗号化されたパスワード
15785 最後にパスワードを変更した日付
1970年1月1日からの日数
0 パスワードが変更できるようになるまでの日数
99999 パスワードが無効になるまでの日数
7 パスワードの期限満了を何日前から警告するか

さらに設定されてないけど後ろ二つは

  • アカウントが無効になるまでの日数
  • アカウントの期限が満了となるまでの日数

なども設定できる。

使用するコマンド

  • useradd
useradd riceplanting    # ユーザー riceplanting を追加
  • userdel
userdel riceplanting    # ユーザー riceplanting を削除
userdel -r riceplanting # ユーザー riceplanting をホームディレクトリの内容ごと削除
  • passwd
[root@localhost riceplanting]# passwd riceplanting
ユーザー riceplanting のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。

※ なお、コマンド以外にもエディタで直接書き換えることもできる
  その場合 vipw というコマンドを使って書き換える。