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 というコマンドを使って書き換える。