<sect1 id="ch06-shadow">
<!--
<title>Installing Shadow-&shadow-version;</title>
-->
<title>Shadow-&shadow-version; のインストール</title>
<?dbhtml filename="shadow.html" dir="chapter06"?>

<!--
<screen>Estimated build time:           &shadow-time;
Estimated required disk space:  &shadow-compsize;</screen>
-->
<screen>推定構築時間:           &shadow-time;
推定必要ディスクスペース  &shadow-compsize;</screen>

&aa-shadowpwd-shortdesc;
&aa-shadowpwd-dep;

<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>

<sect2>
<!--
<title>Installation of Shadow</title>
-->
<title>Shadow のインストール</title>

<!--
<para>The <userinput>login</userinput>, <userinput>getty</userinput> and
<userinput>init</userinput> programs (and some others) maintain a number
of logfiles to record who are and who were logged in to the system.  These
programs, however, don't create these logfiles when they don't exist, so if
you want this logging to occur you will have to create the files yourself.
The Shadow package needs to detect these files in their proper place, so we
create them now, with their proper permissions:</para>
-->
<para><userinput>login</userinput>, <userinput>getty</userinput> と <userinput>init</userinput> プログラム（と、その他いくつか）は、誰がシステムにログインしたか、また、ログインしているかを記録するたくさんのログファイルを保存しています。
しかし、これらのプログラムが存在しないときにはログファイルが作られないので、これを記録をしたいなら自分でファイルを作成しなければいけません。
Shadow パッケージはこれらのファイルを適切な場所で見つけなければいけないので、今それらを適切な許可属性で作成します。</para>

<screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}</userinput></screen>

<!--
<para>The <filename>/var/run/utmp</filename> file lists the users that are
currently logged in, the <filename>/var/log/wtmp</filename> file who
<emphasis>were</emphasis> logged in and when.
The <filename>/var/log/lastlog</filename> file shows for each user when he
or she last logged in, and the <filename>/var/log/btmp</filename> lists the
bad login attempts.</para>
-->
<para><filename>/var/run/utmp</filename> ファイルは現在ログインしているユーザーをリストし、<filename>/var/log/wtmp</filename> ファイルは誰がいつログイン<emphasis>した</emphasis>かをリストします。
<filename>/var/log/lastlog</filename> ファイルはそれぞれのユーザーが最後にいつログインしたかを教え、<filename>/var/log/btmp</filename> は失敗したログインをリストします。</para>

<!--
<para>Shadow hard-wires the path to the <userinput>passwd</userinput> binary
within the binary itself, but does this the wrong way. If a
<userinput>passwd</userinput> binary is not present before installing Shadow,
the package incorrectly assumes it is going to be located at
<filename>/bin/passwd</filename>, but then installs it in
<filename>/usr/bin/passwd</filename>. This will lead to errors about not finding
<filename>/bin/passwd</filename>. To work around this bug, create a dummy
<filename>passwd</filename> file, so that it gets hard-wired properly:</para>
-->
<para>Shadow は <userinput>passwd</userinput> バイナリへのパスをバイナリ自身の中に組み込みますが、これを間違った方法で行ないます。
<userinput>passwd</userinput> バイナリが Shadow のインストールの前に存在しないと、パッケージはバイナリが <filename>/bin/passwd</filename> に置かれることになるという不正確な仮定をし、しかし <filename>/usr/bin/passwd</filename> へインストールします。
これは <filename>/bin/passwd</filename> が見つからないというエラーを引き起こします。
このバグに対処し、正しく組み込むためにダミーの <filename>passwd</filename> ファイルを作ります。</para>

<screen><userinput>touch /usr/bin/passwd</userinput></screen>

<!--
<para>The current Shadow suite has a problem that causes the
<userinput>newgrp</userinput> command to fail.  The following patch (also
appearing in Shadow's CVS code) fixes this problem:</para>
-->
<para>現在の Shadow スイートは <userinput>newgrp</userinput> コマンドが失敗する原因となる問題を持っています。以下のパッチ（ Shadow の CVS コードの中にも現れます）でこの問題を修正します。</para>

<screen><userinput>patch -Np1 -i ../&shadow-patch;</userinput></screen>

<!--
<para>Now prepare Shadow for compilation:</para>
-->
<para>それではコンパイルのために Shadow を準備します。</para>

<screen><userinput>./configure --prefix=/usr --libdir=/usr/lib --enable-shared</userinput></screen>

<!--
<para>Compile the package:</para>
-->
<para>パッケージをコンパイルします。</para>

<screen><userinput>make</userinput></screen>

<!--
<para>And install it:</para>
-->
<para>それからインストールします。</para>

<screen><userinput>make install</userinput></screen>

<!--
<para>Shadow uses two files to configure authentication settings for the
system. Install these two config files:</para>
-->
<para>Shadow はシステムに対する認証環境の設定のために二つのファイルを使います。これら二つの設定ファイルをインストールしましょう。</para>

<screen><userinput>cp etc/{limits,login.access} /etc</userinput></screen>

<!--
<para>We want to change the password method to enable MD5 passwords which are
theoretically more secure than the default "crypt" method and also allow
password lengths greater than 8 characters. We also need to change the old
<filename class="directory">/var/spool/mail</filename> location for user
mailboxes to the current location at
<filename class="directory">/var/mail</filename>. We do this by changing the
relevant configuration file while copying it to its destination:</para>
-->
<para>パスワード体系で、デフォルトの "crypt" 体系よりも理論的に安全な MD5 パスワードを有効にして、8 文字よりも長いパスワードが使えるように変更します。
また、ユーザーのメールボックスとして古い場所の <filename class="directory">/var/spool/mail</filename> を現在の <filename class="directory">/var/mail</filename> に変更する必要があります。
目的の場所にコピーすると同時に、適切な設定ファイルを変更することでこれを行います。</para>

<screen><userinput>sed -e 's%/var/spool/mail%/var/mail%' \
&nbsp;&nbsp;&nbsp;&nbsp;-e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \
&nbsp;&nbsp;&nbsp;&nbsp;etc/login.defs.linux &gt; /etc/login.defs</userinput></screen>

<!--
<note><para>Be extra careful when typing all of the above. It is probably safer
to cut-and-paste it rather than try and type it all in.</para></note>
-->
<note><para>上述のすべての文字をタイプする時、十分に注意してください。すべてを手で入力するよりも、恐らくカットアンドペースする方が安全でしょう。</para></note>

<!--
<para>According to the man page of <userinput>vipw</userinput>, a
<userinput>vigr</userinput> program should exist too. Since the installation
procedure doesn't create this program, create a symlink manually:</para>
-->
<para><userinput>vipw</userinput> の man page によれば、<userinput>vigr</userinput> プログラムもまた存在しなければいけません。インストールプロシージャはこのプログラムを作らないので、手動でシンボリックリンクを作ります。</para>

<screen><userinput>ln -s vipw /usr/sbin/vigr</userinput></screen>

<!--
<para>As the <filename>/bin/vipw</filename> symlink is redundant (and even
pointing to a non-existent file), remove it:</para>
-->
<para><filename>/bin/vipw</filename> シンボリックリンは余計で、かつ存在しないファイルを指定しているので、削除しましょう。</para>

<screen><userinput>rm /bin/vipw</userinput></screen>

<!--
<para>Now move the <userinput>sg</userinput> program to its proper place:</para>
-->
<para>それでは <userinput>sg</userinput> プログラムをその正しい場所へ移動します。</para>

<screen><userinput>mv /bin/sg /usr/bin</userinput></screen>

<!--
<para>And move Shadow's dynamic libraries to a more appropriate location:</para>
-->
<para>そして Shadow の動的ライブラリをより適切な場所へ移動します。</para>

<screen><userinput>mv /usr/lib/lib{shadow,misc}.so.0* /lib</userinput></screen>

<!--
<para>As some packages expect to find the just-moved libraries in
<filename>/usr/lib</filename>, create the following symlinks:</para>
-->
<para>いくつかのパッケージは今移動されたライブラリが <filename>/usr/lib</filename> の中にあると思うので、以下のシンボリックリンクを作ります。</para>

<screen><userinput>ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so</userinput></screen>

<!--
<para>Coreutils has already installed a <userinput>groups</userinput> program
in <filename>/usr/bin</filename>. If you wish, you can remove the one
installed by Shadow:</para>
-->
<para>Coreutils がすでに <userinput>groups</userinput> プログラムを <filename>/usr/bin</filename> へインストールしています。望むなら、Shadow によってインストールされたものを削除できます。</para>

<screen><userinput>rm /bin/groups</userinput></screen>

</sect2>
&c6-cf-shadowpwd;
</sect1>

