在接收套件後第一個步驟就是 unpacking。該套件是 tar 檔案格式使用 gzip 壓縮
,所以首先將該檔案移到 /usr/src
,然後輸入:
tar -xzvf shadow-current.tar.gz
這將會 unpack 到一個目錄:/usr/src/shadow-YYMMDD
第一件事是你需要複製 Makefile
和 config.h
檔:
cd /usr/src/shadow-YYMMDD
cp Makefile.linux Makefile
cp config.h.linux config.h
然後你應該留意 config.h
檔。 該檔案包括某些設定選項的定義。如果你使用
建議 套件,我建議你在第一次設定關掉 group shadow support。
shadowed group passwords 預設值是開啟的。 在 config.h
檔關到這個設定,
且改變 #define SHADOWGRP
變成 #undef SHADOWGRP
。我建議您一開始
關掉它們,然後如果你真的需要 group passwords 和 group administrators 時你在
開啟它們和重新編譯。 如果你開啟它, 你 必須 建立 /etc/gshadow
檔。
開啟長密碼的選項也不建議使用。
不要 改變 #undef AUTOSHADOW
的設定。
AUTOSHADOW
選項初始設計是用以讓 shadow 可以像 function 一樣執行。理論上
聽起來不錯,但是沒辦法正確的運作。 如果你開啟這個選項,且這個程式以 root 權限在執
行, 它會像 root 權限執行一項呼叫 getpwnam()
,然後變更
/etc/passwd
檔 (有no-longer-shadowed 密碼)。 這類程式包括 chfn
和 chsh。(如果 root 在呼叫 getpwnam()
之前使用 chfn 和 chsh,使用者帳號將
沒有辦法真實且有效交易。)
如果你要建立 libc,同樣的警告也有效,它有個 SHADOW_COMPAT
作相同的事。 它
不應該被使用!如果你開始從你的 /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
這些包含在 basename.c
程式碼的改變均需倍包括在 libc 4.6.27
內。
在 shadow suite 要更新時,製作程式備份將是一個很好的點子。在 Slackware 3.0 系統中, 這些檔案是:
這 BETA 套件已經有個 儲存 在 Makefile 的目的檔,但是 因為不同的版本通常將程式放在不同的地方,因此常被人評論。
你應該備份你的 /etc/passwd
檔,但是你要很小心地命名,不然如我你將它放在
相同目錄,你將無法重寫 passwd
命令。
你需要以 root 權限簽入以執行安裝程序.
執行 make 來編譯套件中的執行檔:
make all
你可能會看到警告語: rcsid defined but not used
. 這沒關係,
因為作者使用版本控制套件才會發生。