[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 系統管理 > Linux > 正文
Linux Shadow-Password-HOWTO - 4. 編譯程式
不詳 (2001-05-02 11:11:46)

4.1 解壓縮 
在接收套件後第一個步驟就是 unpacking。該套件是 tar 檔案格式使用 gzip 壓縮,所以首先將該檔案移到 /usr/src ,然後輸入: 

tar -xzvf shadow-current.tar.gz

這將會 unpack 到一個目錄:/usr/src/shadow-YYMMDD 


4.2 設定 config.h 檔 
第一件事是你需要復制 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 內。 


4.3 備份原始程式 
在 shadow suite 要更新時,制作程式備份將是一個很好的點子。在 Slackware 3.0 系統中,這些檔案是: 


/bin/su 
/bin/login 
/usr/bin/passwd 
/usr/bin/newgrp 
/usr/bin/chfn 
/usr/bin/chsh 
/usr/bin/id 
這 BETA 套件已經有個 儲存 在 Makefile 的目的檔,但是因為不同的版本通常將程式放在不同的地方,因此常被人評論。 

你應該備份你的 /etc/passwd 檔,但是你要很小心地命名,不然如我你將它放在相同目錄,你將無法重寫 passwd 命令。 


4.4 執行 make 
你需要以 root 權限簽入以執行安裝程序. 

執行 make 來編譯套件中的執行檔: 


make all

你可能會看到警告語: rcsid defined but not used. 這沒關系,因為作者使用版本控制套件才會發生。 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Linux Shadow-Password-HOWTO - 9. 常問問題及答案 (2001-05-02 11:14:14)
Linux Shadow-Password-HOWTO - 8. 加入 shadow 支援 C 語言 (2001-05-02 11:13:48)
Linux Shadow-Password-HOWTO - 7. 將 Shadow Suite 放進來使用 (2001-05-02 11:13:24)
Linux Shadow-Password-HOWTO - 6. upgrade或patch程式 (2001-05-02 11:12:56)
Linux Shadow-Password-HOWTO - 5. 安裝 (2001-05-02 11:12:10)
Linux Shadow-Password-HOWTO - 4. 編譯程式 (2001-05-02 11:11:46)
Linux Shadow-Password-HOWTO - 3. 取得 Shadow Suite (2001-05-02 11:11:19)
Linux Shadow-Password-HOWTO - 2. 為何shadow你的passwd 檔? (2001-05-02 11:10:46)
Linux Shadow-Password-HOWTO - 1. 簡介 (2001-05-02 11:10:07)
 

★  樊強制作 歡迎分享  ★