next up previous contents
Next: 3.2.2.1 パスワードのエージング(aging) Up: 3.2 システム・ファイルの更新 Previous: 3.2.1 パスワード・ファイル /etc/passwd

3.2.2 シャドウ・ファイル /etc/shadow

シャドウ・ファイル /etc/shadow は、Solaris/SVR4で、新しく設けられた パスワードを管理するシステム・ファイルです。 これまでパスワードは、暗号化されて /etc/passwd の第二フィールドに 格納されてきましたが、そのファイルを読むことは誰にでも出来ました この暗号は、暗号から元の文字列を復元することがきわめて困難であることから、たとえ暗号が読まれても、元のパスワードを知られることは無いと思われていました。 そのために、このように、誰でも読める形で、パスワードファイルが存在していたのです。

しかし、辞書を片端から暗号化してパスワードと照合していくことで、パスワードを解くことができることから、ハッカーたちがパスワードを解読してしまうことが可能となったのです。

それでは、パスワードファイルを読めなくすれば良いではないかと考えるでしょうが、それはできません。 /etc/passwd の読み出し属性を変えると、一般ユーザーがログイン 出来なくなります。つまり、一般ユーザーから暗号化されたパスワードを隠す事は SUN OS 4.x 以前では原理的に出来ませんでした。

Solarisでは、パスワードはやはり暗号化されているのですが、これは、一般ユーザには読み出しのできないシャドウ・ファイル /etc/shadow に格納され ます。このシャドウ・ファイルは、システム管理者しか読むことが出来ないように なっています。いわば、シャドウ・ファイルは、もっとも厳重に保護されている ファイルといえます。

root:Aq.3JjCTynlpI:8468::::::
daemon:NP:6445::::::
bin:NP:6445::::::
sys:NP:6445::::::
adm:NP:6445::::::
  .......(中略)......
listen:*LK*:::::::
nobody:NP:6445::::::
noaccess:NP:6445::::::

シャドウ・ファイルも、パスワード・ファイルと同様に、一人のユーザーが一行に 対応したアスキー・ファイルです。フィールドが、コロンで区切られているのも同じ です。次に、各フィールドの意味を記しておきます。

パスワードフィールドの NP や *LK* は、このユーザーのログインが 許されていないことを あらわしています。もし、パスワードのないユーザーがいれば、このフィールドは、 空でなければなりません。 また、* をパスワードフィールドに書けば、ルートがパスワードを設定するまで ログイン出来なくなります。(SUN OS 4.x 以前では、/etc/passwd のパスワード フィールドに * を設定すれば同じになります。)

実際のユーザ登録の際には、第2フィールドは、適当な文字 * などを入力しておき、後に述べる passwd コマンドで、パスワードを設定します。



 

Noriyo Kanayama