shadow-971001

・Linux


1. shadow-971001 とは

Linuxのシステムにshadow-passwordを導入します。
この作業は慎重に行って下さい。


2. shadow-971001 のインストール

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

3. やっておくこと

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対応になっている。