歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> LinuxShadow-Password-HOWTO-4.編譯程式

LinuxShadow-Password-HOWTO-4.編譯程式

日期:2017/3/6 15:44:26   编辑:關於Unix
4.1解壓縮 在接收套件後第一個步驟就是unpacking。該套件是tar檔案格式使用gzip壓縮,所以首先將該檔案移到/usr/src,然後輸入: tar-xzvfshadow-current.tar.gz 這將會unpack到一個目錄:/usr/src/shadow-YYMMDD 4.2設定config.h檔 第一件事是你需要復制Mak
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. 這沒關系,因為作者使用版本控制套件才會發生。

Copyright © Linux教程網 All Rights Reserved