$B

$B#0!%(Bpoppassd $B$N%$%s%9%H!<%k$NJ}K!(B (1.2-8)

Linux $B$,%$%s%9%H!<%k$5$l$F$$$k%^%7%s$K(B poppassd $B$r%$%s%9%H!<%k$9$kJ}K!$r5-=R$7$^$9!#(B
$B$?$@$7!"!V(BNIS$B!W$r;HMQ$7$F$$$J$$>l9g$K8BDj$7$^$9!#(B


$B#1!%(Bpoppassd $B$C$F$J$K!)(B

$B%a!<%k%5!<%P$N%Q%9%o!<%I$rJQ99$9$k;v$,$G$-$k!VEE;R%a!<%k%/%i%$%"%s%H%=%U%H!W$,$"$j$^$9!#(B
$B!J(BEudora , NUPOP , $B#P$A$c$s(B , p-chng , POP$B%Q%9%o!<%I(B , POP$B%Q%9%o!<%I%A%'%s%8%c(B $BEy!K(B
$B$7$+$7!"%5!<%PB&$GBP1~$7$?%G!<%b%s!J%5!<%S%9!K$,F0:n$7$F$$$J$$$H(B
$B!VEE;R%a!<%k%/%i%$%"%s%H%=%U%H!W$+$i%Q%9%o!<%I$rJQ99$9$k$3$H$O$G$-$^$;$s!#(B
$B$A$J$_$K%a!<%k$r%5!<%P$KAw?.$G$-$k$N$O!"%5!<%P$G!V(BSMTP $B%G!<%b%s!W$,F0$$$F$$$k$+$i$G$9!#(B
$BF1$8$/%a!<%k$r%5!<%P$+$iA0$G$9!#(B


$B#2!%(Bpoppassd $B$N%W%m%H%3%k(B

$BC1=c$J%W%m%H%3%k$G$9!#(B
FTP $B%5!<%P!<$,1~Ez$9$k$h$&$K!"%5!<%P!<$N1~Ez$,I,$:$"$k$O$:$G$9!#(B
$B%5!<%P$N1~Ez$N@hF,$N?t;z$,0UL#$r;}$C$F$^$9!#(B

100$BHVBf!'A0?J(B
200$BHVBf!'@.8y(B
300$BHVBf!'$5$i$K>pJs$,I,MW(B
400$BHVBf!'0l;~E*$J<:GT(B
500$BHVBf!'1J5WE*$J<:GT(B

$B%5%s%W%k$r0J2<$K<($7$^$9!#(B

S: 200 hello\r\n
E: user yourloginname\r\n
S: 300 please send your password now\r\n
E: pass yourcurrentpassword\r\n
S: 200 My, that was tasty\r\n
E: newpass yournewpassword\r\n
S: 200 Happy to oblige\r\n
E: quit\r\n
S: 200 Bye-bye\r\n
S: <closes connection>
E: <closes connection>


$B#3!%;n$7$?4D6-(B

Machine    : CPU=Pentium200 Memory=40MB HDD=1GB
OS         : linux kernel 2.0.35 (Slackware3.6)
C-Compiler : gcc version 2.7.2.3
Library    : libc 5.4.46

$B%G%#%9%H%j%S%e!<%7%g%s(B Slackware3.6 $B$G%$%s%9%H!<%k$7$?!V(BLinux $B%^%7%s(B(BOX)$B!W$J$N$G!"(B
$B%Q%9%o!<%I%7%9%F%`$O!V(Bshadow $B%Q%9%o!<%I!W%7%9%F%`$K$J$C$F$$$^$9!#(B


$B#4!%(Bpoppassd $B$N%=!<%9$NF~l9g$K(B poppassd $B$,%O%s%0%"%C%W$9$k%P%0Ey$,=$@5$5$l$F$$$^$9!#(B
Christoph Lameter $B$5$s$O(B Debian $B!J(BLinux $B$N%G%#%9%H%j%S%e!<%7%g%s$N0l$D!K$N%a%s%F%J!<$G$b$"$j$^$9!#(B
$B%P!<%8%g%s(B 1.2-8 $B$O(B Debian $B$N%Q%C%1!<%8Ey$K<}O?$5$l$F$$$^$9!#(B

$B7kO@(B
Debian $B$N%Q%C%1!<%8$KF~$C$F$$$k%=!<%9$r;HMQ$7$^$9!#(B
Debian JP Project $B$N%5%$%HEy$+$i%=!<%9%U%!%$%k$r%@%&%s%m!<%I$7$^$9!#(B
ftp://ftp.jp.debian.org/debian/dists/stable/main/source/mail/ $BEy$+$i(B
ftp://ftp.jp.debian.org/debian/dists/stable/main/source/mail/poppassd_1.2.orig.tar.gz $B$H(B
ftp://ftp.jp.debian.org/debian/dists/stable/main/source/mail/poppassd_1.2-8.diff.gz 
$B$r%@%&%s%m!<%I$7$^$9!#(B
$B$^$?$O(B Debian $B$N(B CD-ROM $B$N%=!<%9%G%#%l%/%H%j$+$i%3%T!<$7$F$bNI$$$G$7$g$&!#(B


$B#5!%(Bpoppassd $B$N%$%s%9%H!<%kJ}K!(B

$B#5!%#1!%E,Ev$J:n6H%G%#%l%/%H%j$K(B poppassd_1.2.orig.tar.gz $B$r%3%T!<$7$^$9!#(B
$B$^$?$O(B ftp $B$G(B Get $B$7$^$9!#(B


$B#5!%#2!%(Bpoppassd_1.2.orig.tar.gz $B$rE83+$7$^$9!#(B

tar -zxvf poppassd_1.2.orig.tar.gz

poppassd-1.2.orig/ $B%G%#%l%/%H%j$K0J2<$N%U%!%$%k$,E83+$5$l$^$9!#(B

-rw-r--r--   1 hogehoge users         363 May  7  1995 Makefile
-rw-r--r--   1 hogehoge users         138 May  7  1995 README
-rw-r--r--   1 hogehoge users        4817 May  7  1995 info
-r--r--r--   1 hogehoge users         685 Sep 16  1996 poppassd-src.tar.gz.lsm
-rw-r--r--   1 hogehoge users       21102 May  7  1995 poppassd.c


$B#5!%#3!%%P!<%8%g%s(B  1.2 $B$+$i(B 1.2-8 $B$K%P!<%8%g%s%"%C%W$9$k$?$a$N%Q%C%A%U%!%$%k!J(Bpoppassd_1.2-8.diff$B!K$r:n@.$7$^$9!#(B
poppassd_1.2-8.diff.gz $B$r(B gzip $B$GE83+$9$l$P%Q%C%A%U%!%$%k$r:n@.$9$k;v$,$G$-$^$9!#(B

gzip -d poppassd_1.2-8.diff.gz

poppassd_1.2-8.diff $B%Q%C%A%U%!%$%k$,$G$-$^$7$?!#(B

-rw-r--r--   1 hogehoge users       21211 Jan 11 12:09 poppassd_1.2-8.diff


$B#5!%#4!%(Bpoppassd-1.2.orig/ $B$K%Q%C%A%U%!%$%k$r%3%T!<$7$^$9!#(B

cp poppassd_1.2-8.diff poppassd-1.2.orig/


$B#5!%#5!%%+%l%s%H%G%#%l%/%H%j$r(B poppassd-1.2.orig/ $B$K0\F0$7$^$9!#(B

cd poppassd-1.2.orig/


$B#5!%#6!%%Q%C%A$r$"$F$^$9!#(B
patch $B%3%^%s%I$r;H$C$F%Q%C%A$r$"$F$^$7$?!#(B

patch -p1 < poppassd_1.2-8.diff

$B%Q%C%A$,@5>o$K$"$?$k$H0J2<$N$h$&$K%U%!%$%k$,JQ99$5$l$k$O$:$G$9!#(B

-rw-r--r--   1 hogehoge users         375 Jan 11 12:12 Makefile
-rw-r--r--   1 hogehoge users         363 May  7  1995 Makefile.orig
-rw-r--r--   1 hogehoge users         138 May  7  1995 README
drwxr-xr-x   2 hogehoge users        1024 Jan 11 12:12 debian/
-rw-r--r--   1 hogehoge users        4817 May  7  1995 info
-r--r--r--   1 hogehoge users         685 Sep 16  1996 poppassd-src.tar.gz.lsm
-rw-r--r--   1 hogehoge users       11888 Jan 11 12:12 poppassd.c
-rw-r--r--   1 hogehoge users       21102 May  7  1995 poppassd.c.orig


$B#5!%#7!%%a%$%/$7$^$9!#(B
make $B%3%^%s%I$G%a%$%/$7$^$9!#(B

make

$B%a%$%/$9$k$Hl9g$O!V(Bmake $B$G%(%i!<$,=P$k>l9g!W$r;2>H$7$F$/$@$5$$!#!K(B


$B#5!%#8!%%$%s%9%H!<%k$7$^$9!#(B

$B#5!%#8!%#1!%(Bsu $B%3%^%s%I$G%9!<%Q!<%f!<%6$K$J$j$^$9!#!J(Broot $B$N%Q%9%o!<%I$rF~$l$k$N$rK:$l$J$$$h$&$K!K(B

su


$B#5!%#8!%#2!%(Bmake install $B$G(B poppassd $B$r(B /usr/sbin/ $B$K%$%s%9%H!<%k$7$^$9!#(B

make install


$B#5!%#8!%#3!%(B/etc/services $B$rJQ99$7$^$9!#(B
/etc/services $B%U%!%$%k$K(B

poppassd     106/tcp

$B$N(B 1 $B9T$rDI2C$7$^$9!#!J(BTCP $B%]!<%H(B 106 $BHV$N%5!<%S%9$,(B poppassd $B$G$"$k$H$$$&0UL#$G$9!#!K(B


$B#5!%#8!%#4!%(B/etc/inetd.conf $B$rJQ99$7$^$9!#(B
/etc/inetd.conf $B%U%!%$%k$K(B

poppassd stream tcp nowait root /usr/sbin/poppassd poppassd

$B$N0l9T$rDI2C$7$^$9!#(B
$B#6HV$a$N!V(B/usr/sbin/poppassd$B!W$O$"$J$?$,(B poppassd $B$r%$%s%9%H!<%k$7$?%Q%9$r=q$/I,MW$,$"$j$^$9!#(B
$B!J(B/usr/sbin/poppassd $B$G(B poppassd $B%5!<%S%9$r5/F0$9$k$H$$$&@_Dj$G$9!#!K(B

tcpd $B$r;HMQ$7$F$$$k>l9g$O(B

poppassd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/poppassd

$B$NJ}$,K>$^$7$$$G$9!#(B
$B!J(BSlackware3.6 $B$N>l9g$O(B tcpd $B$r;HMQ$9$k$N$,0lHLE*$G$9!#!K(B


$B#5!%#8!%#5!%(Binetd $B%G!<%b%s$K@_Dj$,JQ99$5$l$?;v$rDLCN$7$^$9!#!J(Breboot $B$9$l$P?7$7$$@_Dj$GF0:n$7$^$9!#!K(B

kill -HUP </usr/sbin/inetd $B$N%W%m%;%9(BID>

$B$^$?$O(B

reboot


$B#5!%#9!%(Bmanpage $B$r%$%s%9%H!<%k$7$^$9!#(B
debian/ $B%G%#%l%/%H%j$K(B Christoph Lameter $B$5$s$,=q$$$?(B poppassd.8 $B$,$"$k$N$G%$%s%9%H!<%k$7$^$7$g$&!#(B
$B!J1Q8l$N%^%K%e%"%k$,I,MW$G$J$$>l9g$O%$%s%9%H!<%k$7$J$/$F$bNI$$$G$9!K(B


$B#5!%#9!%#1!%(Bsu $B%3%^%s%I$G%9!<%Q!<%f!<%6$K$J$j$^$9!#(B

su


$B#5!%#9!%#2!%(Binstall $B%3%^%s%I$G%$%s%9%H!<%k$7$^$9!#(B
$B%+%l%s%H%G%#%l%/%H%j$r(B debian/ $B%G%#%l%/%H%j$K0\F0$7$F$+$i2<5-$NMM$J%3%^%s%I$G%$%s%9%H!<%k$7$^$7$g$&!#(B

install -c -m 644 poppassd.8 /usr/man/man8


$B#5!%#9!%#3!%(Bman $B%3%^%s%I$r;HMQ$7$F(B poppassd $B$N%^%K%e%"%k$rFI$a$k$+$r%F%9%H$7$^$9!#(B

man poppassd


$B%^%K%e%"%k$,I=<($5$l$l$P(B poppassd $B$N(B manpage $B$N%$%s%9%H!<%[email protected]$G$9!#(B


$B#6!%(Bmake $B$G%(%i!<$,=P$k>l9g!#(B

$BI.iD9$J$N$G:o=|$7$?$j%3%a%s%H%"%&%H$7$F$bLdBj$"$j$^$;$s!#(B
poppassd.c $B%U%!%$%k$N(B 146 $B9T$r:o=|$7$^$7$g$&!#(B
$B%3%a%s%H%"%&%H$9$k$?$a$K$O0J2<$NMM$KJQ99$7$^$9!#(B

C $B8@8l$N(B /* */ $B$G%3%a%s%H%"%&%H$9$k>l9g(B

/* char *crypt (char *, char *);*/   /* To permit long shadow passwords */

C++ $B8@8l$N(B // $B$G%3%a%s%H%"%&%H$9$k>l9g(B

// char *crypt (char *, char *);   /* To permit long shadow passwords */


$BJQ99$7$?$i!"$^$?(B make $B%3%^%s%I$G%a%$%/$7$^$9!#(B

$B$9$k$H!"$^$?%(%i!<$,=P$^$7$?!#(B
$B%(%i!<%a%C%;!<%8$O(B

cc -o poppassd  poppassd.o -lcrypt
/usr/i486-linux/bin/ld: cannot open -lcrypt: No such file or directory

$B$G$7$?!#(B
$B!V%j%s%/$7$h$&$H$7$?$1$I(B crypt $B$H$$$&%i%$%V%i%j%U%!%$%k$,L5$$!W$H$$$&%(%i!<$G$9!#(B
crypt $B%i%$%V%i%j$K4^$^$l$F$$$=$&$G(B poppassd $B$,;HMQ$7$F$$$k4X?t$O(B crypt() $B$@$H?dB,$5$l$^$9!#(B
$B!J%=!<%9$rFI$s$G?dB,$7$^$7$?!K(B
crypt() $B4X?t$O(B libc.so $B!J(Blibc.so $B$Ne5-$N#2%v=j$NJQ99$G%a%$%/[email protected]$7$^$7$?!#(B

$BCm0U!K(Blibc.so $B$K4^$^$l$F$$$k4X?t$O%i%$%V%i%j$N%P!<%8%g%s$K$h$C$F0c$&>l9g$,$"$j$^$9!#(B
libc.so.5.4.46 $B0J30$N%i%$%V%i%j$r;HMQ$7$F$$$k>l9g$O(B libcrypt.so $BEy$,I,MW$J>l9g$,$"$j$^$9!#(B
$BNc$($P!"%i%$%V%i%j$,(B glibc2 $B$N>l9g$O(B libc.so.6 $B$K(B crypt() $B4X?t$,F~$C$F$$$^$;$s$N$G(B 
libcrypt $B$r%j%s%/$9$kI,MW$,$"$j$^$9!#(B


$B#7!%%$%s%9%H!<%[email protected]$7$F!"%F%9%H$N7k2L$K$bLdBjL5$$$,!"%Q%9%o!<%I$,JQ99$5$l$J$$>l9g(B

poppassd $B$O(B /usr/sbin/newusers $B%3%^%s%I$r;HMQ$7$F%Q%9%o!<%I$rJQ99$7$F$$$^$9!#(B
/usr/sbin/newusers $B%3%^%s%I$,%$%s%9%H!<%k$5$l$F$J$$>l9g!"(B syslog $B$K2<5-$NMM$J(B
$B%(%i!<%a%C%;!<%8$r=PNO$7$F$$$k$O$:$G$9!#(B

poppassd[695]: can't exec /usr/sbin/newusers: No such file or directory

$B>e5-$K3:Ev$9$k>l9g$O(B /usr/sbin/newusers $B%3%^%s%I$r%$%s%9%H!<%k$9$k;v$K$h$jLdBj$,2r7h$7$^$9!#(B

/usr/sbin/newusers $B%3%^%s%I$O!V(Bshadow $B%Q%9%o!<%I!W%Q%C%1!<%8$KF~$C$F$$$^$9!#(B
Slackware3.6 $B$K4^$^$l$F$$$k!V(Bshadow $B%Q%9%o!<%I!W%Q%C%1!<%8$N%U%!%$%kL>$O(B shadow-980724.tar.gz $B$G$9!#(B
$B$"$J$?$N%7%9%F%`$N%Q%9%o!<%I%7%9%F%`$,!V(Bshadow $B%Q%9%o!<%I!W$G$J$$>l9g$G$b!"(B
$B!V(Bshadow $B%Q%9%o!<%I!W$KBP1~$7$F$$$J$$(B /usr/sbin/newusers $B$r%$%s%9%H!<%k$9$l$PLdBj$r2r7h$G$-$^$9!#(B

$B#7!%#1!%(B/usr/sbin/newusers $B$N%$%s%9%H!<%k$NJ}K!(B

$B#7!%#1!%#1!%E,Ev$J%G%#%l%/%H%j$K(B shadow-980724.tar.gz $B$r%3%T!<$7$^$9!#(B
$B$^$?$O(B ftp $B$G(B Get $B$7$^$9!#(B


$B#7!%#1!%#2!%(Bshadow-980724.tar.gz $B$rE83+$7$^$9!#(B

tar -zxvf shadow-980724.tar.gz


$B#7!%#1!%#3!%(Bconfigure $B$G(B Makefile $BEy$r:n@.$7$^$9!#(B
configure $B$,@5>o$KF0:n$9$l$P!"$"$J$?$N%^%7%s$N%Q%9%o!<%I%7%9%F%`$KBP1~$7$?(B
$B%P%$%J%j$r:n@.$9$k$h$&$K(B Makefile $B$r:n@.$7$^$9!#(B

configure


$B#7!%#1!%#4!%%a%$%/$7$^$9!#(B

make

$B%a%$%/[email protected]$7$?$i(B src/ $B%G%#%l%/%H%j$K(B newusers $B$,$G$-$"$,$C$F$$$k$O$:$G$9!#(B

-rwxr-xr-x   1 hogehoge users        2837 Jan 20 21:46 newusers


$B#7!%#2!%%$%s%9%H!<%k$7$^$9!#(B

$B#7!%#2!%#1!%%9!<%Q!<%f!<%6%b!<%I$K$J$C$F$+$i(B

su


$B#7!%#2!%#2!%(Binstall $B%3%^%s%I$G%$%s%9%H!<%k$7$^$9!#(B
$B%+%l%s%H%G%#%l%/%H%j$r(B src/ $B%G%#%l%/%H%j$K0\F0$7$F$+$i2<5-$NMM$J%3%^%s%I$G%$%s%9%H!<%k$7$^$7$g$&!#(B

install -o root -g bin -m 500 newusers /usr/sbin


$B#8!%(Bpoppassd $B$N%F%9%HJ}K!(B

$B%5!<%P$G(B

telnet localhost 106

$B$7$F(B poppassd $B$K@\B3$7$^$9!#(B
$B$"$H$O%W%m%H%3%k$rl9g$NNc!#(B

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 kiwi poppassd v1.2 hello, who are you?
user hogehoge
200 your password please.
pass pswd1233$B!J@5$7$/$J$$%Q%9%o!<%I!K(B
200 your new password please.
newpass newpass0
500 Invalid user or password
Connection closed by foreign host.


$B#9!%(Bpoppassd $B4XO"$N%j%s%/(B

$BK\2H(B Qualcomm http://www.qualcomm.com/
Debian http://www.debian.org/
DebianJP http://www.jp.debian.org/

poppassd $B$N%/%i%$%"%s%H%=%U%H(B
p-chng http://www.nets.or.jp/~chaya/
POP$B%Q%9%o!<%I(B http://member.nifty.ne.jp/nya-n/
POP$B%Q%9%o!<%I%A%'%s%8%c(B http://www.vector.co.jp/soft/win95/net/se054124.html


$B#1#0!%I.A0!!!!!!!!!'EDCf(B $B7r7o!!!!!'(BGPL

$B