Linux
Linuxのシステムにshadow-passwordを導入します。
この作業は慎重に行って下さい。
2.1. ソースの入手
shadow-971001.tar.gz
2.2. ソースの展開
% tar xzvf shadow-971001.tar.gz -C /usr/src % cd /usr/src/shadow-971001
2.3. 準備
% setenv CFLAGS "-O2 -m486"
このままではRed Hat4.2ではエラーになるので、以下のように修正します (無保障)。
% vi libmisc/login_access.c ---------- --- libmisc/login_access.c.old Mon Feb 16 16:56:45 1998 +++ libmisc/login_access.c Mon Feb 16 16:57:20 1998 @@ -40,7 +40,7 @@ #include#include #include -/* #include /* for inet_ntoa() */ +#include /* for inet_ntoa() */ extern struct group *getgrnam(); extern int errno; @@ -254,8 +254,7 @@ hp = gethostbyname(string); if (hp) - return (char *)inet_ntoa((struct in_addr **) **(hp->h_addr_list)); - /*return (char *)inet_ntoa(*((struct in_addr *) *(hp->h_addr_list)));*/ + return (char *)inet_ntoa(*((struct in_addr *) *(hp->h_addr_list))); syslog(LOG_ERR, "%s - unknown host", string); #endif ----------
2.4. Configure
% ./configure
2.5. Make
% make
2.6. Install
% su # tar czvf /etc/oldpasswd.tgz /etc/passwd /etc/group /bin/su /bin/login /usr/bin/newgrp /usr/bin/passwd /usr/bin/chfn /usr/bin/chsh /usr/bin/id /usr/bin/groups # make install # install -c -m 600 etc/login.defs.linux /etc/login.defs # install -c lib/libshadow.a /usr/lib # exit
2.7. Clean
% make clean
shadow-passwd対応化
あらかじめftpd、samba、xlock xdm sudo qpopperなどをshadow-passwd化しておく
wu-ftpd: config.hに、#define SHADOW_PASSWORDの一行を加えてコンパイル
samba: MakefileのFLAGSMに-DSHADOW_PWDを追加してコンパイル
xdm: /usr/X11R6/bin/xdm-shadowがあるのでこれををxdmに置き換える
imake: /usr/X11R6/lib/X11/config/site.defに下記の一行を追加
---------- #define HasShadowPasswd YES /* この行を追加する */ #endif /* BeforeVendorCF */ #ifdef AfterVendorCF ----------
xlockmore: 3.9以降のバージョンはELF環境でコンパイルされていれば必ずshadow対応になっている。