次のページ
前のページ
目次へ
パッケージを入手した後の最初の作業はこれを展開することです。パッケージ
は tar (Tape ARchive) でまとめた後に gzip で圧縮してあるので、まずパッ
ケージを /usr/src に移動させてから次のように入力して下さい:
tar -xzvf shadow-current.tar.gz
この操作でパッケージは /usr/src/shadow-YYMMDD というディレク
トリに展開されます。
まず最初に行なうことはMakefile とconfig.h の2つを上書
きコピーすることです:
cd /usr/src/shadow-YYMMDD
cp Makefile.linux Makefile
cp config.h.linux config.h
まず config.h ファイルを見てください。このファイルには設定オ
プションの定義が書かれています。もし、あなたが推奨されている
パッケージを用いている場合には、まずグループのshadowサポートをまず無効
にしましょう。
標準ではグループのパスワードは有効になっています。これを無効にするため
にはconfig.h を編集し、#define SHADOWGRP を
#undef SHADOWGRP に変更します。とりあえずはこれを無効にしてお
き、あとで本当にグループのパスワードやグループの管理者が必要となった時
に Shadow Suite を再コンパイルするべきでしょう。もし有効なま
まにしておくのならば、/etc/gshadow ファイルを作らなければなり
ません。
倍長パスワードを有効にすることは前に述べた理由のため、推奨しません。
#undef AUTOSHADOW の設定は絶対に変更してはいけません。
AUTOSHADOW オプションは shadow を理解できないプログラムも機能
するようにするために設計されたものです。これは良いことのように思えます
が、きちんと動きません。このオプションを有効にし、root でプログラムを
実行すると、 getpwnam() 関数を呼び出された場合には変更された
エントリーを /etc/passwd ファイルに書き戻してしまいます。
(もはやshadow 化されたパスワードなくなってしまう) chfn や
chsh がこれに該当するプログラムです。getpwnam() を呼び出す前に
真のUIDと実効UIDをうまく切替えることで回避するという方法は使えません。
chfn や chsh は root 権限で動作するからです。
libc には同じ意味を持つ SHADOW_COMPAT オプションがありますが、
同じ注意が libc を作る際にも当てはまります。使うべきではありません!
もし/etc/passwd ファイルにエンコードされたパスワードが現われる
ようならば問題です。
もし4.6.27 以前のバージョンのlibc を使っているなら、
config.h とMakefile をそれぞれ変更する必要があります。
config.h は以下の部分を:
#define HAVE_BASENAME
このように変更してください:
#undef HAVE_BASENAME
Makefile についても同様です:
SOBJS = smain.o env.o entry.o susetup.o shell.o \
sub.o mail.o motd.o sulog.o age.o tz.o hushed.o
SSRCS = smain.c env.c entry.c setup.c shell.c \
pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
tz.c hushed.c
SOBJS = smain.o env.o entry.o susetup.o shell.o \
sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o
SSRCS = smain.c env.c entry.c setup.c shell.c \
pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
tz.c hushed.c basename.c
libc 4.6.27 以降ではこれらの変更はbasename.c に対して
行われています。
Shadow Suite が置き換えてしまうプログラムをあらかじめ確認して
おき、バックアップを取っておくのは良い考えです。Slackware 3.0 パッケー
ジでは以下のファイルが該当します:
- /bin/su
- /bin/login
- /usr/bin/passwd
- /usr/bin/newgrp
- /usr/bin/chfn
- /usr/bin/chsh
- /usr/bin/id
β版パッケージには Makefile 中にsave というターゲットがありま
すが、コメントアウトされています。
パッケージが異なればプログラムの置き場所も異なるからです。
/etc/passwd ファイルのバックアップも取っておいたほうが良いでしょ
う。passwd コマンドと同じディレクトリに置いて上書きしてしまわ
ないように、何か別の名前にしましょう。
インストール作業のほとんどはrootとして行う必要があります。
パッケージの実行ファイルをコンパイルするために make を実行して下さい:
make all
rcsid defined but not used というウォーニングが出るかもしれま
せんが、無視して構いません。
これは作者がバージョン管理ツールを使っているために起こるものです。
次のページ
前のページ
目次へ
|