
poppassd ̃CXg[@

c[

pegira@po.jah.ne.jp

1999/01/27

Linux CXg[Ă}V poppassd CXg[@
Lq܂BAuNISvgpĂȂꍇɌ肵܂B



Table of Contents
1. poppassd ĂȂɁH
2. poppassd ̃vgR
3. 
4. poppassd ̃\[X̓
5. poppassd ̃CXg[@
6. make ŃG[oꍇ
7. CXg[ɐāAeXǧʂɂ薳ApX[hύX
    Ȃꍇ
    7.1. /usr/sbin/newusers ̃CXg[̕@
    7.2. CXg[܂
   
   
8. poppassd ̃eXg@
9. poppassd ֘ÃN
10. M҃[AhX

1. poppassd ĂȂɁH

[T[õpX[hύX鎖łudq[NCAg\
tgv܂ (Eudora , NUPOP , P  , p-chng , POPpX[h ,
POPpX[h`FW)BAT[oőΉf[(T[r
X)삵ĂȂƁudq[NCAg\tgvpX[h
X邱Ƃ͂ł܂BȂ݂Ƀ[T[oɑMł̂́AT[o
ŁuSMTP f[vĂ邩łB[T[oM
̂́AT[oŁuPOP3 f[vĂ邩łBāApX
[hύXf[T[oɃCXg[ĂƁAT[o telnet
āA /usr/bin/passwd R}hgpăpX[hύXƂ
|ȑȂĂApX[hύXł悤ɂȂ܂B

poppassd Ƃ unix p̃pX[hύXf[܂͂̃vgR
̖OłB


2. poppassd ̃vgR

PȃvgRłB FTP T[o[悤ɁAT[o[̉K
͂łBT[ỏ̐擪̐ӖĂ܂B

  100ԑFOi                                                        
  200ԑF                                                        
  300ԑFɏ񂪕Kv                                            
  400ԑFꎞIȎs                                                
  500ԑFivIȎs                                                

TvȉɎ܂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>                                               


3. 

  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                                             

fBXgr[V Slackware3.6 ŃCXg[uLinux }V
(BOX)vȂ̂ŁApX[hVXéushadow pX[hvVXeɂȂ
Ă܂B


4. poppassd ̃\[X̓

poppassd  Eudora Ƃ[NCAg\tgɓYtĂ܂B
Eudora ̔ĂЂł Qualcomm Ђ FTP TCg ftp://
ftp.qualcomm.com/eudora/servers/unix/password/ ɂ\[XuĂ
B Linux p̃\[X ftp://ftp.qualcomm.com/eudora/servers/unix/
password/linux.tar ̃t@CłBA Qualcomm Ђ poppassd
́ushadow pX[hvɑΉĂ܂B

A̒ɂ́ushadow pX[hvɑΉ poppassd Ă
l܂B Roy Smith  Daniel L. Leavitt ̍ poppasd 
ǂ John Norstad łB 1993/8/31 Ƀ[Xꂽo[W
1.2 ŐVo[WłB John Norstad  poppassd  sunsite 
^Ă܂B ftp://sunsite.sut.ac.jp/pub/archives/linux/system/
mail/pop/poppassd-src.tar.gz

̌AJohn Norstad ̃o[W 1.2 ɂ Christoph Lameter
񂪉ǂ܂Bǔł̃o[W 1.2-8  1997/11/13 Ƀ[X
܂BȕύXe̓pX[h̕ύX@ /usr/bin/passwd R}h
 /usr/sbin/newusers R}h֕ύXłB

̕ύXɂA/usr/bin/passwd R}h󂯕tȂZpX[h
AAt@xbg̃VvȃpX[h͂ꂽꍇ poppassd
nOAbvoOCĂ܂B Christoph Lameter 
Debian iLinux ̃fBXgr[V̈j̃ei[ł܂
Bo[W 1.2-8  Debian ̃pbP[WɎ^Ă܂B

_ Debian ̃pbP[WɓĂ\[Xgp܂B Debian JP
Project ̃TCg\[Xt@C_E[h܂B ftp://
ftp.jp.debian.org/debian/dists/stable/main/source/mail/  ftp://
ftp.jp.debian.org/debian/dists/stable/main/source/mail/
poppassd_1.2.orig.tar.gz  ftp://ftp.jp.debian.org/debian/dists/stable
/main/source/mail/poppassd_1.2-8.diff.gz _E[h܂B܂
Debian  CD-ROM ̃\[XfBNgRs[Ăǂł傤B


5. poppassd ̃CXg[@

 1. KȍƃfBNg poppassd_1.2.orig.tar.gz Rs[܂B
     ftp  Get ܂B
   
 2. poppassd_1.2.orig.tar.gz WJ܂B
   
      tar zxvf poppassd_1.2.orig.tar.gz                         
   
    poppassd-1.2.orig/ fBNgɈȉ̃t@CWJ܂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              
   
 3. o[W 1.2  1.2-8 Ƀo[WAbv邽߂̃pb`t@C
    (poppassd_1.2-8.diff)쐬܂B
   
    poppassd_1.2-8.diff.gz  gzip œWJ΃pb`t@C쐬
    ł܂B
   
      gzip -d poppassd_1.2-8.diff.gz                            
   
    poppassd_1.2-8.diff pb`t@Cł܂B
   
      -rw-r--r--   1 hogehoge users       21211 Jan 11 12:09 poppassd_1.2-8.diff
   
 4. poppassd-1.2.orig/ Ƀpb`t@CRs[܂B
   
      cp poppassd_1.2-8.diff poppassd-1.2.orig/                 
   
 5. JgfBNg poppassd-1.2.orig/ Ɉړ܂B
   
      cd poppassd-1.2.orig/                                     
   
 6. pb`Ă܂B
   
    patch R}hgăpb`Ă܂B
   
      patch -p1 < poppassd_1.2-8.diff                           
   
    pb`ɂƈȉ̂悤Ƀt@CύX͂ł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         
   
 7. CN܂B
   
    make R}hŃCN܂B
   
      make                                                      
   
    CNƎst@C poppassd ł܂ (G[oăCN
    sꍇ́umake ŃG[oꍇvQƂĂ)B
   
 8. CXg[܂B
   
     
   
     a. su R}hŃX[p[[UɂȂ܂ (root ̃pX[h
        ̂YȂ悤)B
       
          su                                                    
       
     b. make install  poppassd  /usr/sbin/ ɃCXg[܂B
       
          make install                                          
       
     c. /etc/services ύX܂B
       
        /etc/services t@C
       
          poppassd     106/tcp                                  
       
         1 sǉ܂(TCP |[g 106 Ԃ̃T[rX poppassd ł
        ƂӖł)B
       
     d. /etc/inetd.conf ύX܂B
       
        /etc/inetd.conf t@C
       
          poppassd stream tcp nowait root /usr/sbin/poppassd poppassd
       
        ̈sǉ܂B 6 Ԃ߂́u/usr/sbin/poppassdv͂Ȃ
        poppassd CXg[pXKv܂(/usr/sbin/
        poppassd  poppassd T[rXNƂݒł)B
       
        tcpd gpĂꍇ
       
          poppassd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/poppassd
       
        ̕]܂ł(Slackware3.6 ̏ꍇ tcpd gp̂
        ʓIł)B
       
     e. inetd f[ɐݒ肪ύXꂽʒm܂ (reboot ΐV
        ݒœ삵܂)B
       
          kill -HUP </usr/sbin/inetd ̃vZXID>              
       
        ܂
       
          reboot                                                
       
   
 9. manpage CXg[܂B
   
    debian/ fBNg Christoph Lameter 񂪏 poppassd.8 
    ̂ŃCXg[܂傤 (p̃}jAKvłȂꍇ
    CXg[ȂĂǂł)B
   
     
   
     a. su R}hŃX[p[[UɂȂ܂B
       
          su                                                    
       
     b. install R}hŃCXg[܂B
       
        JgfBNg debian/ fBNgɈړĂ牺L
        lȃR}hŃCXg[܂傤B
       
          install -c -m 644 poppassd.8 /usr/man/man8            
       
     c. man R}hgp poppassd ̃}jAǂ߂邩eXg
        ܂B
       
          man poppassd                                          
       
        }jA\ poppassd  manpage ̃CXg[ɐ
        łB
       
     



6. make ŃG[oꍇ

M҂̊ł make ŃG[o܂BG[bZ[W

  poppassd.c:146: conflicting types for `crypt'                        
  /usr/include/unistd.h:639: previous declaration of `crypt'           

łBupoppassd.c RpC悤Ƃ񂾂 146 sŐ錾
 `crypt' ȑOɐ錾ꂽ^ƈႢ܂vƂG[łB
poppassd.c t@C 146 s̓e

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

łB

crypt() ֐̐錾 unistd.h Ɋ܂܂Ă܂Bpoppassd.c ł
unistd.h CN[hĂ܂BāA璷Ȃ̂ō폜Rg
AEgĂ肠܂B poppassd.c t@C 146 s폜܂
BRgAEg邽߂ɂ͈ȉ̗lɕύX܂B

  C  /* */ ŃRgAEgꍇ                                    
                                                                             
  /* char *crypt (char *, char *);*/   /* To permit long shadow passwords */ 
                                                                             
  C++  // ŃRgAEgꍇ                                     
                                                                             
  // char *crypt (char *, char *);   /* To permit long shadow passwords */   

ύXA܂ make R}hŃCN܂B

ƁA܂G[o܂BG[bZ[W

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

łBuN悤Ƃ crypt ƂCut@Cv
ƂG[łBcrypt CuɊ܂܂Ă poppassd gp
Ă֐ crypt() Ɛ܂ (\[XǂŐ܂)B
crypt() ֐ libc.so (libc.so ̎̂ libc.so.5.4.46) Ɋ܂܂Ă
̂ -lcrypt w͕Kv܂B Makefile t@C 6 sڂ
Cu̎wRgAEg܂BCNt@C̃Rg}[N
 # łB

  LIBS    = -lcrypt # -lshadow                                         

̈s

  LIBS    = # -lcrypt # -lshadow                                       

ɕύX܂B

ύXA܂ make R}hŃCN܂BM҂͏L 2 ̕ύX
ŃCNɐ܂B

Ӂjlibc.so Ɋ܂܂Ă֐̓Cũo[WɂĈႤ
܂Blibc.so.5.4.46 ȊÕCugpĂꍇ
libcrypt.so Kvȏꍇ܂BႦ΁ACu glibc2 ̏
 libc.so.6  crypt() ֐Ă܂̂ libcrypt N
Kv܂B


7. CXg[ɐāAeXǧʂɂ薳ApX[hύX
Ȃꍇ

poppassd  /usr/sbin/newusers R}hgpăpX[hύXĂ
܂B/usr/sbin/newusers R}hCXg[ĂȂꍇA syslog
ɉL̗lȃG[bZ[Wo͂Ă͂łB

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

LɊYꍇ /usr/sbin/newusers R}hCXg[鎖
肪܂B

/usr/sbin/newusers R}h́ushadow pX[hvpbP[WɓĂ
܂BSlackware3.6 Ɋ܂܂Ăushadow pX[hvpbP[W̃t@
C shadow-980724.tar.gz łBȂ̃VXẽpX[hVXe
ushadow pX[hvłȂꍇłAushadow pX[hvɑΉ
ĂȂ /usr/sbin/newusers CXg[Ζł܂B


7.1. /usr/sbin/newusers ̃CXg[̕@

 1. KȃfBNg shadow-980724.tar.gz Rs[܂B܂ ftp
     Get ܂B
   
 2. shadow-980724.tar.gz WJ܂B
   
      tar -zxvf shadow-980724.tar.gz                            
   
 3. configure  Makefile 쐬܂B
   
    configure ɓ삷΁AȂ̃}ṼpX[hVXe
    ΉoCi쐬悤 Makefile 쐬܂B
   
      configure                                                 
   
 4. CN܂B
   
      make                                                      
   
    CNɐ src/ fBNg newusers łĂ
    ͂łB
   
      -rwxr-xr-x   1 hogehoge users        2837 Jan 20 21:46 newusers
   



7.2. CXg[܂

 1. X[p[[U[hɂȂĂ
   
      su                                                        
   
 2. install R}hŃCXg[܂B
   
    JgfBNg src/ fBNgɈړĂ牺L̗lȃR
    }hŃCXg[܂傤B
   
      install -o root -g bin -m 500 newusers /usr/sbin          
   



8. poppassd ̃eXg@

T[o

  telnet localhost 106                                                 

 poppassd ɐڑ܂BƂ̓vgRœ͂Ċm߂܂
B

ł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 pswd1234                                                        
  200 your new password please.                                        
  newpass newpass0                                                     
  200 Password changed, thank-you.                                     
  quit                                                                 
  200 Bye.                                                             
  Connection closed by foreign host.                                   

݂̃pX[hȂꍇ̗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 pswd1233iȂpX[hj                                
  200 your new password please.                                        
  newpass newpass0                                                     
  500 Invalid user or password                                         
  Connection closed by foreign host.                                   


9. poppassd ֘ÃN

 E { QualcommF http://www.qualcomm.com/
   
 E DebianF http://www.debian.org/
   
 E DebianJPF http://www.jp.debian.org/
   

poppassd ̃NCAg\tg
    p-chngF http://www.nets.or.jp/~chaya/
   
    POPpX[hF http://member.nifty.ne.jp/nya-n/
   
    POPpX[h`FWF http://www.vector.co.jp/soft/win95/net/
    se054124.html
   



10. M҃[AhX

O@@@@Fc [iȂ Ђ炭j
dq[@Fpegira@po.jah.ne.jp
EFuy[WFhttp://www.jah.ne.jp/~pegira/
Z@@@@F앐YAJ
zz@@FGPL

(SGML conversion: yuji senda, 2001/03/12)
