プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Linux、「/etc/passwd」「/etc/passwd-」「/etc/shadow」「/etc/shadow-」とはなんぞや?
ちょっくらLinuxの基礎を学び直そうと思いましてね。
気になったことを取りとめもなく調べていくことにしました。

次に調べたのが「/etc/passwd」「/etc/passwd-」「/etc/shadow」「/etc/shadow-」。

大体のことは理解しているけど、復習もかねて一応調べておくかな、というのが
調べたきっかけです。

ふむふむ(--)

まず「/etc/passwd」は一般ユーザが見られるパスワードファイルです。
どちらかと言えば「アカウントファイル」と呼んだ方が適切な気もしますけどね。
ユーザやパスワードの情報が載っています。

ポイントは「一般ユーザが見られる」です。
これについては後述します。

ファイルの中身は

hoge:x:501:501::/home/hoge:/bin/bash

のようになっていて、各項目間は「:」で区切られています。
項目は左から順に

ユーザ名
パスワード
ユーザID
グループID
知らね
ホームディレクトリ
ログインシェル

の並びです。

ちなみにパスワード欄が「x」になっている場合、シャドウパスワードが使われています。

先程「/etc/passwd」は一般ユーザが見られると書きました。

確かに

ls -alt /etc/passwd

を実行すると、結果は

-rw-r--r-- 1 root root 2571 Jan 3 12:58 /etc/passwd

のようになり、他人様にも読み取り権限が付いています。

と言うことはですね。

普通の一般ユーザでもその気になればパスワードが見えちゃうのです。

もちろんパスワード自体は暗号化されています。
しかし時代の進歩と共にコンピュータの性能は格段に良くなり
「暗号化しててもさ~時間をかければ解析されちゃうんじゃね?」な心配が出てきました。

そこで生まれたのが「シャドウパスワード」と呼ばれる仕組みです。
シャドウパスワードの理屈は簡単です(--)b

よし!パスワードは普通の奴が見えないところに書くべ!

それだけ。

具体的には、パスワードを「/etc/shadow」ファイルに保存することにしたのです。
そして「/etc/shadow」はrootユーザ以外に見せない。

試しに

ls -alt /etc/shadow

を実行すると、結果は

-r-------- 1 root root 1892 Jan 3 12:58 /etc/shadow

のようになっているはずです。
自分自身(rootユーザ)以外には読めないようになっていますね。

余談ですが「/etc/shadow」の中身は

hoge:$1$wd2ee9ac$w/CgdauedlyUdVdOaeHb..:15525:0:99999:10:::

のようになっています。
項目は「:」区切りで、左から順に

ユーザ名
パスワード
1970/1/1から最後にパスワードを変更した日までの日数
「パスワード変更していーよ」になるまでの日数
「パスワード変更しろや、ボケ」になるまでの日数:
「そろそろパスワード変更してねー」と警告を受けるまでの日数
有効期限を過ぎてからアカウントが使えなくなるまでの日数
1970/1/1からアカウントが使えなくなるまでの日数
未使用

の並びです。

余談ついでに「/etc/passwd」を一般ユーザに見えるようにしている理由も
少しだけ触れておきましょうか。

と言っても、大げさなことは何もないですけどね。
一般ユーザも見る必要があるような情報が載っているからです。

ホームデレィクトリとかログインシェルとか。
ユーザIDとユーザ名の対応とか。

「/etc/passwd」を一般ユーザが見られなくするよりも、
一般ユーザが見られない「/etc/dhadow」を作って、
そっちにパスワードを分離する方が楽だったのでしょう。

そんな感じです。

あっ、忘れてました。

「/etc/passwd-」「/etc/shadow-」はそれぞれのファイルのバックアップです。
気にしなくてOK。

まとめると「/etc/passwd」はユーザの情報が載っているファイルです。
このファイルは一般ユーザも見ることができます。
「/etc/shadow」は「/etc/passwd」からパスワード情報だけ分離したファイルです。
このファイルはrootユーザしか見ることができません。
「/etc/passwd-」「/etc/shadow-」はそれぞれのファイルのバックアップファイルです。

完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:ファイル/ディレクトリ  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事