Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > e74e806c1a2640e922856d7eb69d1420 > files > 103

howto-text-ja-2006-5mdv2010.0.noarch.rpm

  Linux Shadow Password HOWTO
  Michael H. Jackson, mhjack@tscnet.com
  v1.3, 1996”N4ŒŽ3“ú
  “¡Œ´‹P‰Ã, fujiwara@linux.or.jp

  ‚±‚Ì•¶‘‚Í Linux ‚̃pƒXƒ[ƒh‚ð shadow ‰»‚·‚é Shadow Suit ‚Ì“üŽèAƒCƒ“
  ƒXƒg[ƒ‹‹y‚ѐݒè‚Ì•û–@‚ɂ‚¢‚Äà–¾‚·‚é‚à‚Ì‚Å‚·B‚Ü‚½Aƒ†[ƒU‚̃pƒXƒ[
  ƒh”FØ‚ðs‚¤ƒ\ƒtƒgƒEƒFƒA‚âƒf[ƒ‚ƒ“‚Ì(Ä)ƒCƒ“ƒXƒg[ƒ‹‚ɂ‚¢‚Ä‚à‰ðà‚µ‚Ü
  ‚·B‚±‚ê‚ç‚̃vƒƒOƒ‰ƒ€‚Í Shadow Suit ‚̈ꕔ‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAShadow
  Suit ‚ðƒTƒ|[ƒg‚·‚邽‚߂ɂ͍ăRƒ“ƒpƒCƒ‹‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚Ü‚½A‚±‚Ì
  •¶‘‚É‚Í shadow ƒpƒXƒ[ƒh‚ðƒTƒ|[ƒg‚·‚éƒvƒƒOƒ‰ƒ€‚Ì—á‚à‘‚¢‚Ä‚ ‚è‚Ü
  ‚·B«—ˆ‚̉ü’è‚Å‚Í‚æ‚­•·‚©‚ê‚鎿–â‚ւ̉ñ“š‚à‚³‚ç‚ɉÁ‚¦‚é‚‚à‚è‚Å‚·B
  ______________________________________________________________________

  –ÚŽŸ

  1. ‚Í‚¶‚ß‚É
     1.1 ˆÈ‘O‚̔ł©‚ç‚̕ύX“_
     1.2 ‚±‚Ì•¶‘‚̍ŐV”łɂ‚¢‚Ä
     1.3 ƒtƒB[ƒhƒoƒbƒN

  2. shadow ƒpƒXƒ[ƒh‚ðŽg‚¤‚ׂ«——R
     2.1 shadow ƒpƒXƒ[ƒh‚ðŽg‚í‚È‚¢‚Ù‚¤‚ª—Ç‚¢ê‡
     2.2 /etc/passwd ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg
     2.3 shadow ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg
     2.4 crypt(3) ‚ÌŠT—v

  3. Shadow Suite ‚Ì“üŽè
     3.1 Linux —p‚Ì Shadow Suite ‚Ì—ðŽj
     3.2 Shadow Suite ‚Ì“üŽè
     3.3 Shadow Suite ‚ɂ͉½‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚©

  4. ƒvƒƒOƒ‰ƒ€‚̃Rƒ“ƒpƒCƒ‹
     4.1 ƒA[ƒJƒCƒu‚Ì“WŠJ
     4.2 config.h ‚É‚æ‚éÝ’è
     4.3 Œ³‚̃vƒƒOƒ‰ƒ€‚̃oƒbƒNƒAƒbƒv‚̍쐬
     4.4 Make ‚ÌŽÀs

  5. ƒCƒ“ƒXƒg[ƒ‹
     5.1 ƒVƒXƒeƒ€”j‰ó‚É”õ‚¦‚Ẵu[ƒgƒfƒBƒXƒNì¬
     5.2 d•¡‚·‚éƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚̍폜
     5.3 make install ‚ÌŽÀs
     5.4 pwconv ‚ÌŽÀs
     5.5 npasswd ‚Æ nshadow ‚̃Šƒl[ƒ€

  6. ƒAƒbƒvƒOƒŒ[ƒh‚·‚é‚©ƒpƒbƒ`‚ð“–‚Ä‚é•K—v‚ª‚ ‚éƒvƒƒOƒ‰ƒ€
     6.1 Slackware adduser program
     6.2 wu_ftpd ƒT[ƒo
     6.3 •W€‚Ì ftpd
     6.4 pop3d (Post Office Protocol 3)
     6.5 xlock
     6.6 xdm
     6.7 sudo
     6.8 imapd (E-Mail [pine ƒpƒbƒP[ƒW])
     6.9 pppd (PPP ƒvƒƒgƒRƒ‹ƒT[ƒo)

  7. Shadow Suite ‚ðŽg‚Á‚Ä‚Ý‚é
     7.1 ƒ†[ƒU‚̒ljÁA•ÏXAíœ
        7.1.1 useradd
        7.1.2 usermod
        7.1.3 userdel
     7.2 passwd ƒRƒ}ƒ“ƒh‚ƃpƒXƒ[ƒh‚ÌŠúŒÀÝ’è
     7.3 login.defs ƒtƒ@ƒCƒ‹
     7.4 ƒOƒ‹[ƒv‚̃pƒXƒ[ƒh
     7.5 ˆêŠÑ«‚ðƒ`ƒFƒbƒN‚·‚éƒvƒƒOƒ‰ƒ€
        7.5.1 pwck
        7.5.2 grpck
     7.6 ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh

  8. CƒvƒƒOƒ‰ƒ€‚ð Shadow Suite ‚ɑΉž‚³‚¹‚é•û–@
     8.1 ƒwƒbƒ_ƒtƒ@ƒCƒ‹
     8.2 libshadow.a ƒ‰ƒCƒuƒ‰ƒŠ
     8.3 Shadow \‘¢‘Ì
     8.4 Shadow ƒTƒ|[ƒg‚Ì‚½‚߂̊֐”
     8.5 —á‘è

  9. ‚æ‚­•·‚©‚ê‚鎿–â(Frequently Asked Questions).
  10. Copyright Message(’˜ìŒ •\Ž¦)
  11. ‚»‚Ì‘¼ / ŽÓŽ«
  12. –óŽÒ‚æ‚è

  ______________________________________________________________________

  1.  ‚Í‚¶‚ß‚É

  ‚±‚Ì•¶‘‚Í Linux Shadow-Password-HOWTO ‚Å‚·B‚±‚Ì•¶‘‚Í Linux ƒVƒXƒeƒ€
  ‚É‚È‚º shadow ƒpƒXƒ[ƒh‚𓱓ü‚·‚é‚Ì‚©A‚Ü‚½‚ǂ̂悤‚É“±“ü‚·‚é‚Ì‚©‚ðà
  –¾‚µ‚Ü‚·BShadow Suite ‚Ì‹@”\‚Ì—˜—p–@‚ɂ‚¢‚Ä‚Ìà–¾‚à‚ ‚è‚Ü‚·B

  Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎞‚âAƒ†[ƒeƒBƒŠƒeƒB‚ðŽg‚¤Žž‚É‚Í root
  ‚Å‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñBShadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éÛ‚ɂ̓VƒXƒeƒ€‚Ì
  ŠîŠ²ƒ\ƒtƒgƒEƒFƒA‚̕ύX‚ªs‚í‚ê‚é‚̂ŁAŒã‚Åà–¾‚·‚é‚悤‚ɃoƒbƒNƒAƒbƒv‚ð
  Žæ‚é‚ׂ«‚Å‚·B‚Ü‚½ì‹Æ‚ðŽn‚ß‚é‘O‚ɂ́A‚±‚ê‚©‚çs‚¤à–¾‚ð‚·‚×‚Ä“Ç‚ÝA—
  ‰ð‚µ‚Ä‚¨‚­‚ׂ«‚Å‚µ‚傤B

  1.1.  ˆÈ‘O‚̔ł©‚ç‚̕ύX“_

  ’ljÁ:
          shadow ƒpƒXƒ[ƒh‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚È‚¢‚Ù‚¤‚ª‚æ‚¢ê‡‚ɂ‚¢‚Ă̐߂ð’ljÁ
          xdm ‚̍XV‚ɂ‚¢‚Ă̐߂ð’ljÁ
          Shadwo Sutie ‚Ì“®ì‚Ì‚³‚¹‚©‚½‚ɂ‚¢‚Ă̏͂ð’ljÁ
          ‚æ‚­•·‚©‚ê‚鎿–â‚ɂ‚¢‚Ă̏͂ð’ljÁ

  ’ù³/XV:
          Sunsite ‚Ì html ‚Ö‚ÌŽQÆ‚ð’ù³
          wu-ftp ‚̏͂ŠMakefile ‚É -lshadow ‚ð Makefile ‚ɉÁ‚¦‚é‚悤’ù³
          ŒëŽš’EŽš‚Ì’ù³
          wu-ftp ‚̏͂ŠELF ‚ðƒTƒ|[ƒg‚·‚é‚悤•ÏX
          ƒvƒƒOƒ‰ƒ€'login'‚Å‚¨‚±‚éƒZƒLƒ…ƒŠƒeƒBã‚Ì–â‘è‚ðXV
          Marek Michalkiewicz Ž‚É‚æ‚é Linux Shadow Suite ‚𐄏§‚·‚é‚悤XV

  1.2.  ‚±‚Ì•¶‘‚̍ŐV”łɂ‚¢‚Ä

  ‚±‚Ì•¶‘‚̍ŐV”ł͈ȉº‚̃TƒCƒg‚©‚ç anonymous FTP ‚Å“üŽè‚Å‚«‚Ü‚·:
  sunsite.unc.edu

  /pub/Linux/docs/HOWTO/Shadow-Password-HOWTO

  ‚ ‚é‚¢‚Í:

  /pub/Linux/docs/HOWTO/other-formats/Shadow-Password-HOWTO{-html.tar,ps,dvi}.gz

  ‚ ‚é‚¢‚́AWWW ‚ð—˜—p‚µ‚āA Linux Documentation Project Web Server
  <http://sunsite.unc.edu/mdw/linux.html> ‚Ì Shadow-Password-HOWTO
  <http://sunsite.unc.edu/linux/HOWTO/Shadow-Password-HOWTO.html> ‚̃y[
  ƒW‚©‚ç“üŽè‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B

  ‚Ü‚½A•MŽÒ(<mhjack@tscnet.com>) ‚©‚ç’¼Ú“üŽè‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·‚µA
  comp.os.linux.answers ƒjƒ…[ƒXƒOƒ‹[ƒv‚É‚à“Še‚³‚ê‚Ü‚·B

  ‚±‚Ì•¶‘‚ÍŒ»Ý‚Í Shadow-YYDDMM ƒpƒbƒP[ƒW‚É‚àŠÜ‚Ü‚ê‚é‚悤‚É‚È‚è‚Ü‚µ
  ‚½B

  –ó’: “ú–{Œê–ó‚̍ŐV”łɂ‚¢‚Ä‚Í WWW‚ª—˜—p‚Å‚«‚é‚È‚ç‚Î JF-INDEX
  <http://jf.linux.or.jp/JF/JF-ftp/other-formats/INDEX-JF.html> ‚©‚çA
  ftp ‚ª—˜—p‚Å‚«‚é‚È‚ç‚Î jf.linux.or.jp ‚Ì/Linux/JF/ƒfƒBƒŒƒNƒgƒŠ‚È‚Ç‚©‚ç
  “üŽè‚Å‚«‚Ü‚·B
  1.3.  ƒtƒB[ƒhƒoƒbƒN

  ƒRƒƒ“ƒg‚â’ù³A’ñˆÄ‚È‚Ç‚Í•MŽÒ(Michael H. Jackson
  <mhjack@tscnet.com>)‚É‘—‚Á‚ĉº‚³‚¢B‘‚­ƒtƒB[ƒhƒoƒbƒN‚𓾂ç‚ê‚ê‚΁A‚»
  ‚ꂾ‚¯‘‚­‚±‚Ì•¶‘‚𒼂·‚±‚Æ‚ª‚Å‚«‚Ü‚·B‚ ‚Ü‚èƒlƒbƒgƒjƒ…[ƒX‚ÍŒ©‚Ä‚¢‚È
  ‚¢‚̂ŁA•s‹ï‡‚ðŒ©‚Â‚¯‚½ê‡‚É‚Í’¼Úƒ[ƒ‹‚ð‘—‚Á‚ĉº‚³‚¢B

  2.  shadow ƒpƒXƒ[ƒh‚ðŽg‚¤‚ׂ«——R

  Œ»Ý‚Í‚Ù‚Æ‚ñ‚Ç‚Ì Linux ‚̃pƒbƒP[ƒW‚Å‚Í Shadow Suite ‚Í•W€‚ł̓Cƒ“ƒX
  ƒg[ƒ‹‚³‚ê‚Ü‚¹‚ñBSlackware 2.3, Slackware 3.0 ‚⑼‚̃|ƒsƒ…ƒ‰[‚ȃpƒb
  ƒP[ƒW‚Å‚»‚¤‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚Ì——R‚̈ê‚‚̓IƒŠƒWƒiƒ‹‚Ì Shadow Suite ‚Ì
  ’˜ìŒ •\Ž¦‚́A–³—¿”z•z‚Å‚È‚¢ê‡‚ɂ‚¢‚Ä•s–¾Šm‚¾‚©‚ç‚Å‚·BLinux ‚Í CD-
  ROM ‚̂悤‚È”z•z‚É•Ö—˜‚ȃƒfƒBƒA‚ÖƒpƒbƒP[ƒW‰»‚µA‚±‚ê‚ɑ΂·‚é•ñV‚ðŽó
  ‚¯Žæ‚邱‚Æ‚ªs‚¢‚â‚·‚¢ GNU Copyright (Copyleft ‚Æ‚àŒ¾‚í‚ê‚Ü‚·‚ª)‚ðÌ—p
  ‚µ‚Ä‚¢‚Ü‚·B

  Œ»ÝShadow Suite‚ðƒƒ“ƒeƒiƒ“ƒX‚µ‚Ä‚¢‚é, Marek Michalkiewicz
  <marekm@i17linuxb.ists.pwr.wroc.pl> Ž‚ÍŒ³‚̍ìŽÒ‚©‚çAÄ”z•z‚Ì‚Å‚«‚é
  BSD ƒXƒ^ƒCƒ‹‚Ì’˜ìŒ ‚Ì‚à‚ƂɃ\[ƒXƒR[ƒh‚ðŽó‚¯Žæ‚Á‚Ä‚¢‚Ü‚·BŒ»Ý‚Í’˜ì
  Œ ‚Ì–â‘è‚Í‰ðŒˆ‚µ‚Ä‚¢‚é‚̂ŁA«—ˆ‚Í•W€‚Å Linux ‚̃pƒbƒP[ƒW‚É Shadow
  Suite ‚ªŠÜ‚Ü‚ê‚邱‚Æ‚É‚È‚é‚Å‚µ‚傤B‚»‚ê‚܂ł́Aƒ†[ƒU‚ªŽ©•ªŽ©g‚ŃCƒ“
  ƒXƒg[ƒ‹‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

  ƒpƒbƒP[ƒW‚ð CD-ROM ‚©‚çƒCƒ“ƒXƒg[ƒ‹‚·‚éê‡‚ɂ́AƒpƒbƒP[ƒWŽ©‘Ì‚Í
  Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚È‚­‚Ä‚àAShadow Suite ‚̃Cƒ“ƒXƒg[ƒ‹‚É•K
  —v‚ȃtƒ@ƒCƒ‹‚Í CD-ROM ‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚Æ‚ª‚ ‚è‚Ü‚·B

  ‚µ‚©‚µAƒo[ƒWƒ‡ƒ“3.3.1, 3.3.1-2‚Ì Shadow Suite ‚Æ shadow-mk ‚Å‚Í
  login ƒvƒƒOƒ‰ƒ€‚Æroot ‚É suid ‚³‚ꂽƒvƒƒOƒ‰ƒ€‚ŃZƒLƒ…ƒŠƒeƒBã‚Ì–â‘è
  ‚ð‹N‚±‚µ‚Ü‚·B‚Å‚·‚©‚çA‚±‚ê‚ç‚ðŽg‚Á‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB

  •K—v‚ȃtƒ@ƒCƒ‹‚Í anonymous FTP ‚â WWW ‚ð—˜—p‚µ‚Ä“üŽè‚·‚邱‚Æ‚ª‚Å‚«‚Ü
  ‚·B

  Shadow Suite ‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚È‚¢ Linux ƒVƒXƒeƒ€‚ł̓pƒXƒ[ƒh‚ð
  ŠÜ‚ß‚½ƒ†[ƒUî•ñ‚Í /etc/passwd ƒtƒ@ƒCƒ‹‚É‹L˜^‚³‚ê‚Ä‚¢‚Ü‚·B‚à‚¿‚ë‚ñA
  ƒpƒXƒ[ƒh‚͈͆‰»‚³‚ꂽó‘Ô‚Å‹L˜^‚³‚ê‚Ä‚¢‚Ü‚·B‚µ‚©‚µAˆÃ†‚̐ê–å‰Æ‚É
  Œ¾‚킹‚é‚Æ‚±‚ê‚͈͆‰»(encrypt)‚Å‚Í‚È‚­ƒGƒ“ƒR[ƒh(encode)‚ɉ߂¬‚È‚¢‚»
  ‚¤‚Å‚·Bcrypt(3) ‚ð—p‚¢‚éê‡‚Ì•¶Žš—ñ‚ª‹ó‚Å‚ ‚ê‚΃pƒXƒ[ƒh‚̓L[‚É
  ‚È‚Á‚Ä‚µ‚Ü‚¤‚©‚ç‚Å‚·B‚±‚Ì——R‚©‚çA‚±‚êˆÈ~‚Ì•¶‘’†‚Å‚Í'ˆÃ†‰»'‚Å‚Í‚È
  ‚­ 'ƒGƒ“ƒR[ƒh'‚ÌŒê‚ð—p‚¢‚Ü‚·B

  ‚±‚±‚ŃpƒXƒ[ƒh‚ðƒGƒ“ƒR[ƒh‚·‚邽‚ß‚É—p‚¢‚ç‚ê‚éƒAƒ‹ƒSƒŠƒYƒ€‚́A‹Zp“I
  ‚É‚Í’P•ûŒü‚̃nƒbƒVƒ…ŠÖ”‚ÆŒ¾‚í‚ê‚é‚à‚Ì‚Å‚·B‚±‚ê‚́A‚ ‚é•ûŒü‚É‚ÍŒvŽZ‚µ
  ‚â‚·‚¢‚¯‚ê‚ǁA‚»‚Ì‹t•ûŒü‚ÌŒvŽZ‚Í”ñí‚ɓ‚¢‚Æ‚¢‚¤ƒAƒ‹ƒSƒŠƒYƒ€‚Å‚·BŽÀ
  Û‚̃Aƒ‹ƒSƒŠƒYƒ€‚ɂ‚¢‚Ä‚Ì‚æ‚èÚ‚µ‚¢à–¾‚Í 2.4ß‚© crypt(3) ‚̃}ƒjƒ…ƒA
  ƒ‹‚ðŽQÆ‚µ‚ĉº‚³‚¢B

  ƒ†[ƒU‚ª‚ ‚éƒpƒXƒ[ƒh‚ðŒˆ‚ß‚½ê‡A‚±‚̃pƒXƒ[ƒh‚̓‰ƒ“ƒ_ƒ€‚ÉŒˆ‚ß‚ç‚ê
  ‚½ salt ‚ƌĂ΂ê‚é’l‚ð—p‚¢‚ăGƒ“ƒR[ƒh‚³‚ê‚Ü‚·B‚±‚¤‚·‚邱‚Ƃňê‚‚̕¶
  Žš—ñ‚ªƒGƒ“ƒR[ƒh‚³‚ꂽŒ‹‰Ê‚Æ‚µ‚ÄŽæ‚肤‚錋‰Ê‚Í 4096 ’Ê‚è‚É‚È‚è‚Ü
  ‚·Bsalt ‚Ì’l‚̓Gƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh‚ƈꏏ‚É‹L˜^‚³‚ê‚Ü‚·B

  ƒ†[ƒU‚ªƒƒOƒCƒ“Žž‚ɃpƒXƒ[ƒh‚ð“ü—Í‚·‚é‚ƁA‚Ü‚¸ salt ‚ªƒGƒ“ƒR[ƒh‚³‚ê
  ‚Ä‚¢‚éƒpƒXƒ[ƒh‚©‚çŽæ‚èo‚³‚ê‚Ü‚·B‚»‚µ‚āA“ü—Í‚³‚ꂽƒpƒXƒ[ƒh‚ð
  salt ‚ð—p‚¢‚ăGƒ“ƒR[ƒh‚µ‚Ä‚»‚ÌŒ‹‰Ê‚ðƒGƒ“ƒR[ƒh‚³‚ꂽ•¶Žš—ñ‚Æ”äŠr‚µ‚Ü
  ‚·B‚±‚ꂪˆê’v‚µ‚½ê‡‚ɐ³‚µ‚¢ƒ†[ƒU‚Æ‚µ‚Ä”FØ‚µ‚Ü‚·B

  ƒ‰ƒ“ƒ_ƒ€‚ɃGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh‚ð“üŽè‚µAŒ³‚̃pƒXƒ[ƒh‚𕜌³‚·‚é
  ‚±‚Æ‚ÍŒvŽZ‚Ì“_‚©‚獢“ï‚Å‚·(•s‰Â”\‚Å‚Í‚È‚¢)B‚µ‚©‚µA•¡”ˆÈã‚̐l‚ªŽg‚¤
  ƒVƒXƒeƒ€‚ł͏­‚È‚©‚炸‚̃pƒXƒ[ƒh‚Í‚ ‚è‚ӂꂽ’PŒê(‚ ‚é‚¢‚Í‚ ‚è‚ӂꂽ
  ’PŒê‚ð­‚µ•Ï‚¦‚½‚¾‚¯‚Ì‚à‚Ì)‚É‚È‚Á‚Ä‚¢‚Ü‚·B

  ƒNƒ‰ƒbƒJ[‚Í‚±‚̂悤‚ÈŽ–î‚ð‚æ‚­’m‚Á‚Ä‚¢‚é‚Ì‚Å 4096 ŒÂ‘S‚Ä‚Ì salt ‚ð—p
  ‚¢‚ÄŽ«‘‚Ì’PŒê‚Æ‚æ‚­Žg‚í‚ê‚»‚¤‚ȃpƒXƒ[ƒh‚ð‚ ‚ç‚©‚¶‚߃Gƒ“ƒR[ƒh‚µ‚Ä‚¨
  ‚«‚Ü‚·B‚»‚µ‚āA/etc/passwd ‚ɏ‘‚©‚ê‚Ä‚¢‚éƒGƒ“ƒR[ƒh‚µ‚½ƒpƒXƒ[ƒh‚ð‚±
  ‚ÌŒ‹‰Ê‚Æ”äŠr‚µ‚Ü‚·B‚±‚±‚ňê’v‚·‚é‚à‚Ì‚ªŒ©‚‚©‚ê‚΁AƒNƒ‰ƒbƒJ[‚Í‘¼l‚Ì
  ƒpƒXƒ[ƒh‚ð”j‚Á‚½‚±‚Æ‚É‚È‚é‚킯‚Å‚·B‚±‚ê‚́uŽ«‘UŒ‚v‚ƌĂ΂ê‚é‚à‚Ì
  ‚ŁA³‹K‚Ì”FØ‚ðŽó‚¯‚¸‚ɃVƒXƒeƒ€‚ɃAƒNƒZƒX‚·‚邽‚߂̏퓅Žè’i‚Å‚·B

  ‚ ‚é 8 •¶Žš‚©‚ç‚È‚éƒpƒXƒ[ƒh‚Í A13 •¶Žš‚©‚琬‚é 4096 ’Ê‚è‚Ì•¶Žš—ñ‚Ì
  ‚Ç‚ê‚©‚ɃGƒ“ƒR[ƒh‚³‚ê‚Ü‚·B‚µ‚½‚ª‚Á‚āAŠî–{Œê‚âŒÅ—L–¼ŽŒ‚Æ‚»‚ê‚ÉŠÈ’P‚È
  •Ï‰»‚ð‚‚¯‚½‚à‚Ì‚ðW‚߂čì‚Á‚½400,000 Œê’ö“x‚ÌŽ«‘‚Í 4GB ‚̃n[ƒhƒfƒB
  ƒXƒN‚ɏ\•ªŽû‚Ü‚é‚­‚ç‚¢‚Ì‘å‚«‚³‚Å‚·BƒNƒ‰ƒbƒJ[‚Í‚±‚ê‚ç‚ðƒ\[ƒg‚µ‚Ä‚¨
  ‚«A /etc/passwd ‚Ì•¶Žš—ñ‚ƈê’v‚·‚é‚©‚Ç‚¤‚©‚𒲂ׂ邾‚¯‚Å‚æ‚¢‚Ì‚Å
  ‚·B4GB ‚̃n[ƒhƒfƒBƒXƒN‚Í 1,000 ƒhƒ‹ˆÈ‰º‚Å”ƒ‚¦‚é‚­‚ç‚¢‚Å‚·‚©‚çA‘å’ï
  ‚̃Nƒ‰ƒbƒJ[‚ÍŽ‚Á‚Ä‚¢‚é‚ƍl‚¦‚é‚ׂ«‚Å‚·B

  ‚Ü‚½AƒNƒ‰ƒbƒJ[‚ªÅ‰‚É‚ ‚È‚½‚Ì /etc/passwd ƒtƒ@ƒCƒ‹‚ðŽè‚É“ü‚ꂽê‡
  ‚ɂ̓Nƒ‰ƒbƒJ[‚Í‚±‚̃tƒ@ƒCƒ‹‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚ésalt‚ðŽg‚Á‚ÄŽ«‘‚ðƒGƒ“ƒR[ƒh
  ‚µ‚Ă䂯‚΂悢‚¾‚¯‚É‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·BƒfƒBƒXƒN”•SƒƒKƒoƒCƒg‚Æ486ƒNƒ‰
  ƒX‚ÌCPU‚ðŽ‚Âƒ}ƒVƒ“‚ª‚ ‚ê‚΁A‚±‚Ì’ö“x‚Ì‚±‚Æ‚ÍŽq‹Ÿ‚Å‚à‚Å‚«‚Ä‚µ‚Ü‚¢‚Ü
  ‚·B

  ‘å—ʂ̃fƒBƒXƒN‚ª‚È‚­‚Ä‚à crack(1) ‚̂悤‚ȃ†[ƒeƒBƒŠƒeƒB‚ð—p‚¢‚ê‚΁A‚ 
  ‚é’ö“xˆÈã‚̐”‚̃†[ƒU‚ª‚¢‚éƒVƒXƒeƒ€‚̏­‚È‚­‚Æ‚àˆê‚‚̓pƒXƒ[ƒh‚ð”j‚é
  ‚±‚Æ‚ª‚Å‚«‚Ü‚·B(ƒ†[ƒU‚ÍŽ©•ª‚ÅŠeŽ©‚̃pƒXƒ[ƒh‚ðŒˆ‚ß‚é‚à‚Ì‚Æ‚µ‚Ü‚·B)

  /etc/passwd ƒtƒ@ƒCƒ‹‚É‚Í‘½‚­‚̃VƒXƒeƒ€ƒvƒƒOƒ‰ƒ€‚ªŽg‚¤ƒ†[ƒU ID ‚âƒOƒ‹
  [ƒvID ‚̂悤‚ȏî•ñ‚ª‘‚©‚ê‚Ä‚¢‚Ü‚·B]‚Á‚āA‚±‚̃tƒ@ƒCƒ‹‚͐¢ŠE’†‚©‚ç
  ƒAƒNƒZƒX‚Å‚«‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB—Ⴆ‚΁A /etc/passwd ƒtƒ@ƒCƒ‹‚ð’N‚à“Ç
  ‚ß‚È‚¢‚悤‚É‚µ‚Ä‚µ‚Ü‚Á‚½‚çA‚Ä‹Á‚­‚Í‚ß‚É‚È‚é‚Å‚µ‚傤B

  Shadow Suite ‚̓pƒXƒ[ƒh‚ð•Ê‚̏ꏊ‚Ɉڂ·‚±‚Æ‚Å‚±‚Ì–â‘è‚ð‰ðŒˆ‚µ‚Ü‚·(’Ê
  í‚Í /etc/shadow)B‚±‚̃tƒ@ƒCƒ‹‚Í’N‚à“Ç‚ß‚È‚¢‚悤‚ɐݒ肳‚ê‚Ü
  ‚·Broot‚¾‚¯‚ª /etc/shadow ƒtƒ@ƒCƒ‹‚ð“ǂݏ‘‚«‚Å‚«‚Ü‚·B‚¢‚­‚‚©‚̃vƒ
  ƒOƒ‰ƒ€(xlock ‚È‚Ç)‚Í /etc/shadow ‚ð•ÏX‚Í‚Å‚«‚È‚­‚Ä‚à‚¢‚¢‚Å‚·‚ªAƒpƒX
  ƒ[ƒh‚ÌŠm”F‚͍s‚¤•K—v‚ª‚ ‚è‚Ü‚·B‚±‚̂悤‚ȃvƒƒOƒ‰ƒ€‚Í root ‚É SUID
  ‚·‚é‚©Ashadow ƒOƒ‹[ƒv‚É‘®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·BƒpƒXƒ[ƒh‚ðŠm”F‚·‚邽
  ‚ß‚¾‚¯‚É root ‚É SUID ‚·‚é‚æ‚è‚́Ashadow ‚É SGID ‚·‚é•û‚ª—Ç‚¢l‚¦‚ÆŒ¾
  ‚¦‚Ü‚·B

  ƒpƒXƒ[ƒh‚ð /etc/shadow ‚Ɉړ®‚³‚¹‚邱‚Æ‚É‚æ‚Á‚āAƒNƒ‰ƒbƒJ[‚ªƒGƒ“ƒR
  [ƒh‚³‚ꂽƒpƒXƒ[ƒh‚ɃAƒNƒZƒX‚µ‚ÄŽ«‘UŒ‚‚É—˜—p‚·‚邱‚Æ‚ð–h‚°‚Ü‚·B

  ‰Á‚¦‚āAShadow Suite ‚͈ȉº‚̂悤‚È“Á’·‚ðŽ‚Á‚Ä‚¢‚Ü‚·:

  o  ƒƒOƒCƒ“Žž‚̃fƒtƒHƒ‹ƒg‚ðÝ’è‚·‚éƒRƒ“ƒtƒBƒOƒŒ[ƒVƒ‡ƒ“ƒtƒ@ƒC
     ƒ‹(/etc/login.defs)

  o  ƒ†[ƒUƒAƒJƒEƒ“ƒg‚âƒOƒ‹[ƒv‚ð’ljÁAC³Aíœ‚·‚邽‚߂̃†[ƒeƒBƒŠ
     ƒeƒB
  o  ŒÃ‚¢ƒpƒXƒ[ƒh‚̃`ƒFƒbƒN‚âŠúŒÀÝ’è

  o  ƒAƒJƒEƒ“ƒg‚ÌŠúŒÀÝ’è‚ƃƒbƒLƒ“ƒO

  o  ”{’·ƒpƒXƒ[ƒh (16•¶Žš‚̃pƒXƒ[ƒh) [„§‚µ‚Ü‚¹‚ñ]

  o  ƒ†[ƒU‚̃pƒXƒ[ƒhŒˆ’è‚𐧌䂵‚â‚·‚¢

  o  ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh

  o  2ŽŸ”FØƒvƒƒOƒ‰ƒ€ [„§‚µ‚Ü‚¹‚ñ]

  Shadow Suit ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚邱‚ƂŃVƒXƒeƒ€‚̃ZƒLƒ…ƒŠƒeƒB‚ð‹­‰»‚·‚邱
  ‚Æ‚ª‚Å‚«‚Ü‚·‚ªALinux ƒVƒXƒeƒ€‚̃ZƒLƒ…ƒŠƒeƒB‚ð‚æ‚è‹­‰»‚·‚邽‚߂ɂ́A‘¼
  ‚É‚à‚â‚é‚ׂ«‚±‚Ƃ͐”‘½‚­‚ ‚è‚Ü‚·BƒZƒLƒ…ƒŠƒeƒB‹­‰»‚Ì•û–@‚ƃZƒLƒ…ƒŠƒeƒB
  ‚ÉŠÖŒW‚·‚é˜b‘è‚ɂ‚¢‚ĉðà‚·‚é Linux Security HOWTO ƒVƒŠ[ƒY‚ª‚»‚Ì‚¤‚¿
  ‚Å‚«‚邱‚Æ‚Å‚µ‚傤B

  Šù’m‚̃ZƒLƒ…ƒŠƒeƒBƒz[ƒ‹‚ɂ‚¢‚Ä‚ÌŒx‚ȂǁA Linux ‚̃ZƒLƒ…ƒŠƒeƒB‚É‚Â
  ‚¢‚Ă̍ŐV‚̏î•ñ‚𓾂邽‚ß‚É‚ÍLinux Security ƒz[ƒ€ƒy[ƒW
  <http://bach.cis.temple.edu/linux/linux-security/> ‚ðŽQÆ‚µ‚ĉº‚³‚¢B

  2.1.  shadow ƒpƒXƒ[ƒh‚ðŽg‚í‚È‚¢‚Ù‚¤‚ª—Ç‚¢ê‡

  Shadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚邱‚Æ‚ª‚©‚Ȃ炸‚µ‚à—Ç‚¢‚±‚Æ‚Å‚Í‚È‚¢ŠÂ‹«‚â
  ƒVƒXƒeƒ€\¬‚à‚ ‚è‚Ü‚·B

  o  ƒVƒXƒeƒ€‚Ƀ†[ƒUƒAƒJƒEƒ“ƒg‚ª‚È‚¢ê‡B

  o  ƒRƒ“ƒsƒ…[ƒ^‚ª LAN ‚ÉŒq‚ª‚Á‚Ä‚¢‚āAƒ†[ƒU–¼‚âƒpƒXƒ[ƒh‚Í NIS
     (Network Information Services) Œo—R‚Ńlƒbƒgƒ[ƒNã‚Ì‘¼‚̃}ƒVƒ“‚©‚ç
     “¾‚Ä‚¢‚éê‡B(‚±‚ê‚Í–{•¶‘‚͈̔͂ðŠO‚ê‚Ä‚¢‚é“_‚ƁA‚ ‚Ü‚èƒZƒLƒ…ƒŠ
     ƒeƒBŒüã‚Í–]‚ß‚È‚¢‚Ì‚Åà–¾‚µ‚Ü‚¹‚ñ)

  o  ƒVƒXƒeƒ€‚ª NFS (Network File System)‚â NIS ‚È‚Ç‚ð—p‚¢‚ㆁ[ƒU”FØ‚ð
     ‚·‚邽‚߂Ƀ^[ƒ~ƒiƒ‹ƒT[ƒo‚É‚æ‚Á‚Ä—˜—p‚³‚ê‚éê‡

  o  ƒ†[ƒU”FØ‚Í‚·‚邪Ashadow ƒpƒXƒ[ƒh‚ɑΉž‚µ‚Ä‚¨‚炸Aƒ\[ƒXƒR[ƒh
     ‚à–³‚¢ƒ\ƒtƒgƒEƒFƒA‚ðŽg‚í‚È‚¯‚ê‚΂Ȃç‚È‚¢ê‡

  2.2.  /etc/passwd ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg

  shadow ‰»‚³‚ê‚Ä‚¢‚È‚¢ /etc/passwd ƒtƒ@ƒCƒ‹‚͈ȉº‚̂悤‚ȃtƒH[ƒ}ƒbƒg‚É
  ‚È‚Á‚Ä‚¢‚Ü‚·:

       username:passwd:UID:GID:full_name:directory:shell

  ‚±‚±‚ŁA

     username
        ƒ†[ƒU‚̃ƒOƒCƒ“ƒl[ƒ€

     passwd
        ƒGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh

     UID
        ƒ†[ƒU ID (”’l)

     GID
        ƒfƒtƒHƒ‹ƒg‚̃Oƒ‹[ƒv ID (”’l)

     full_name
        ƒ†[ƒU‚Ì–{–¼BŽÀÛ‚É‚Í‚±‚̃tƒB[ƒ‹ƒh‚Í GECOS (General Electric
        Comprehensive Operating System) ƒtƒB[ƒ‹ƒh‚ƌĂ΂êAƒ†[ƒU‚Ì–{–¼
        ˆÈŠO‚̏î•ñ‚à•ÛŽ‚Å‚«‚Ü‚·BShadow Suite ‚̃Rƒ}ƒ“ƒh‚¨‚æ‚уIƒ“ƒ‰ƒC
        ƒ“ƒ}ƒjƒ…ƒAƒ‹‚ł̓Rƒƒ“ƒgƒtƒB[ƒ‹ƒh‚Æ‚µ‚Ä‹Lq‚³‚ê‚Ä‚¢‚Ü‚·B

     directory
        ƒ†[ƒU‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ

     shell
        ƒ†[ƒU‚̃ƒOƒCƒ“ƒVƒFƒ‹(â‘΃pƒX‹Lq)

  —Ⴆ‚ÎŽŸ‚̂悤‚É‚È‚è‚Ü‚·:

       username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh

  ‚±‚±‚ŁA‘æ2ƒtƒB[ƒ‹ƒh‚Ì Np ‚Í salt ‚ŁAge08pfz4wuk ‚̓Gƒ“ƒR[ƒh‚³‚ꂽ
  ƒpƒXƒ[ƒh‚Å‚·B“¯‚¶ƒpƒXƒ[ƒh‚Å‚àAsalt/ƒpƒXƒ[ƒh‚Ì‘g‚ݍ‡‚킹‚Í kbe-
  MVnZM0oL7I ‚̂悤‚É‚È‚éê‡‚à‚ ‚è‚Ü‚·B‚ ‚éˆê‚‚̃pƒXƒ[ƒh‚ÉŠÖ‚µ‚ăG
  ƒ“ƒR[ƒh‚³‚꓾‚é‰Â”\«‚Í 4096’Ê‚è‚Å‚·B(‚±‚Ì—á‚Å—p‚¢‚½ 'password' ‚Æ‚¢
  ‚¤ƒpƒXƒ[ƒh‚Í”j‚ç‚ê‚â‚·‚¢“_‚É‚¨‚¢‚Ä”ñí‚Ɉ«‚¢ƒpƒXƒ[ƒh‚Å‚·B)

  Shadow suite ‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚é‚ƁA/etc/passwd ƒtƒ@ƒCƒ‹‚͈ȉº‚̂悤
  ‚É‚È‚è‚Ü‚·:

       username:x:503:100:FullName:/home/username:/bin/sh

  ‚±‚̏ꍇ‚Ì2”Ԗڂ̃tƒB[ƒ‹ƒh‚Ì 'x' ‚Í’P‚ɏꏊ‚ð–„‚ß‚Ä‚¢‚邾‚¯‚Å‚·BƒGƒ“
  ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh‚ÍŠÜ‚Ü‚ê‚È‚­‚È‚è‚Ü‚·‚ªA /etc/passwd ƒtƒ@ƒCƒ‹‚Ì
  ƒtƒH[ƒ}ƒbƒgŽ©‘Ì‚Í•Ï‚í‚è‚Ü‚¹‚ñB]‚Á‚āA /etc/passwd ƒtƒ@ƒCƒ‹‚ð“Ç‚Þ‚¯
  ‚ê‚ǃpƒXƒ[ƒh”FØ‚͍s‚í‚È‚¢ƒvƒƒOƒ‰ƒ€‚͈ȑO‚Ì’Ê‚è‚É“®ì‚µ‚Ü‚·B

  ƒpƒXƒ[ƒh‚Í shadow ƒtƒ@ƒCƒ‹(’ʏí /etc/shadow) ‚Ɉڂ³‚ê‚Ü‚·B

  2.3.  shadow ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg

  /etc/shadowƒtƒ@ƒCƒ‹‚ɂ͈ȉº‚̂悤‚ȏî•ñ‚ª‹Lq‚³‚ê‚Ä‚¢‚Ü‚·:

       username:passwd:last:may:must:warn:expire:disable:reserved

  “à—e‚͈ȉº‚̂悤‚ȈӖ¡‚ðŽ‚¿‚Ü‚·:

     username
        ƒ†[ƒU–¼

     passwd
        ƒGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh

     last
        1970”N1ŒŽ1“ú‚©‚çAƒpƒXƒ[ƒh‚ªÅŒã‚ɍXV‚³‚ꂽ“ú‚Ü‚Å‚Ì“ú”

     may
        ‰½“ú‘O‚ɃpƒXƒ[ƒh‚ª•ÏX‚³‚ꂽ‚ÆŽv‚í‚ê‚é‚©

     must
        ƒpƒXƒ[ƒh‚ð•ÏX‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢ŠúŒÀ

     warn
        ƒpƒXƒ[ƒh‚ÌŠúŒÀØ‚ê‚̉½“ú‘O‚Ƀ†[ƒU‚ÉŒx‚·‚é‚©

     expire
        ƒpƒXƒ[ƒhŠúŒÀØ‚ê‚̉½“úŒã‚ɃAƒJƒEƒ“ƒg‚𖕏Á‚·‚é‚©

     disable
        1970”N1ŒŽ1“ú‚©‚çAƒAƒJƒEƒ“ƒg‚ª–•Á‚³‚ꂽ“ú‚Ü‚Å‚Ì“ú”

     reserved
        —\–ñƒtƒB[ƒ‹ƒh

  ‚³‚«‚Ù‚Ç‚Æ“¯‚¶—á‚Å‚Í /etc/shadow ‚Í‚±‚̂悤‚É‚È‚è‚Ü‚·:

       username:Npge08pfz4wuk:9479:0:10000::::

  2.4.  crypt(3) ‚ÌŠT—v

  crypt(3) ‚̃Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚æ‚è:

  "crypt‚̓pƒXƒ[ƒh‚̈͆‰»ŠÖ”‚Å‚ ‚éB‚±‚ê‚Í Data Encryption Standard
  (DES) ‚̃Aƒ‹ƒSƒŠƒYƒ€‚ɁA“Á‚ɃL[ŒŸõ‚̃n[ƒhƒEƒFƒAŽÀ‘•‚ð‚µ‚É‚­‚­‚·‚邱
  ‚Æ‚ð“Á‚ɈӐ}‚µ‚½•Ï‰»‚ð‚‚¯‚½‚à‚Ì‚ÉŠî‚¢‚Ä‚¢‚éB

  ƒL[‚̓†[ƒU‚Ì“ü—Í‚µ‚½ƒpƒXƒ[ƒh‚Å‚ ‚éB [ƒGƒ“ƒR[ƒh‚³‚ꂽ•¶Žš—ñ‚Í‚·‚×
  ‚ÄNULL‚Å‚ ‚éB]

  salt ‚Í [a-zA-Z0-9./] ‚Ì’†‚©‚ç2•¶Žš‚ð‘I‚ñ‚¾•¶Žš—ñ‚Å‚ ‚éB‚±‚Ì•¶Žš—ñ‚Í
  ƒAƒ‹ƒSƒŠƒYƒ€‚Ì’†‚Å4096’Ê‚è‚̈قȂ錋‰Ê‚©‚çˆê‚‚ð“K“–‚É‘I‚яo‚·‚½‚ß‚É—p
  ‚¢‚ç‚ê‚éB

  ƒL[‚ÌŠe•¶Žš‚̉ºˆÊ7ƒrƒbƒg‚ðŽæ‚èo‚·‚±‚Æ‚Å 56ƒrƒbƒg‚̃L[‚ª“¾‚ç‚ê‚éB‚±
  ‚Ì56ƒrƒbƒg‚̃L[‚͒萔•¶Žš—ñ(’ʏí‚Í‘S‚Ä0‚Ì•¶Žš—ñ‚ðŠÜ‚Þ)‚ðŒJ‚è•Ô‚µˆÃ†
  ‰»‚·‚邽‚ß‚É—p‚¢‚ç‚ê‚éB–ß‚µ’l‚͈͆‰»‚³‚ꂽƒpƒXƒ[ƒh‚ւ̃|ƒCƒ“ƒ^‚Å‚ 
  ‚èA‚±‚̃pƒXƒ[ƒh‚Í13•¶Žš‚Ì ASCII •¶Žš‚Å‚ ‚é(Å‰‚Ì2•¶Žš‚Ísalt‚»‚Ì‚à
  ‚Ì‚Å‚ ‚é)B–ß‚µ’l‚̃|ƒCƒ“ƒ^‚ªŽw‚·—̈æ‚͌Ăяo‚µ‚²‚Ƃɏ㏑‚«‚³‚ê‚éÃ“I
  ‚ȃf[ƒ^‚Å‚ ‚éB

  Œx:ƒL[‹óŠÔ‚Í 2‚Ì56æ(=7.2e16)ŒÂ‚Ì’l‚ðŽæ‚邱‚Æ‚ª‚Å‚«‚éB‚±‚̃L[‹óŠÔ
  ‚Í‘å—Ê‚Ì•À—ñŒvŽZ‹@‚ð—p‚¢‚ê‚ΑS’Tõ‚·‚邱‚Æ‚ª‰Â”\‚Å‚ ‚éB‚Ü‚½Acrack(1)
  ‚̂悤‚ȃ\ƒtƒgƒEƒFƒA‚͐lŠÔ‚ªƒpƒXƒ[ƒh‚É—p‚¢‚»‚¤‚È’PŒê‚ªì‚éƒL[‹óŠÔ‚Ì
  •”•ª‹óŠÔ‚ɍi‚Á‚ÄŒŸõ‚ðs‚¤B]‚Á‚āAƒpƒXƒ[ƒh‚Ì‘I‘ð‚Å‚Í‚ ‚è‚ӂꂽ’PŒê
  ‚â–¼‘O‚ÌŽg—p‚Í”ð‚¯‚é‚ׂ«‚Å‚ ‚éBƒpƒXƒ[ƒh‚ðŒˆ‚ß‚éÛ‚É‚Í”j‚ç‚ê‚â‚·‚¢ƒp
  ƒXƒ[ƒh‚̃`ƒFƒbƒN‚ðs‚¤ passwd(1) ƒvƒƒOƒ‰ƒ€‚ð—˜—p‚·‚é‚Æ—Ç‚¢‚¾‚낤B

  DES ƒAƒ‹ƒSƒŠƒYƒ€Ž©‘Ì‚É‚Í•È‚ª‚ ‚é‚̂ŁAcrypt(3)‚̃Cƒ“ƒ^ƒtƒF[ƒX‚̓pƒXƒ
  [ƒh”FØ‚Ì‘¼‚ÉŽg‚¤‚ׂ«‚Å‚Í‚È‚¢Bcrypt(3)‚̃Cƒ“ƒ^ƒtƒF[ƒX‚ðˆÃ†‚»‚Ì‚à‚Ì
  ‚ÉŠÖ‚í‚éƒvƒƒWƒFƒNƒg‚É—˜—p‚µ‚Ä‚Í‚È‚ç‚È‚¢B‚±‚̂悤‚ȏꍇ‚ɂ́AˆÃ†‰»‚É
  ‚‚¢‚ď‘‚¢‚Ä‚ ‚é—Ç‚¢–{‚ƍL‚­—˜—p‚·‚邱‚Æ‚ª‚Å‚«‚é DES ƒ‰ƒCƒuƒ‰ƒŠ‚ð“üŽè
  ‚·‚é‚ׂ«‚Å‚ ‚éB"

  ‚Ù‚Æ‚ñ‚Ç‚Ì Shadow Suites ƒpƒbƒP[ƒW‚ɂ̓pƒXƒ[ƒh‚ð16•¶Žš‚É”{’·‰»‚·‚é
  ƒR[ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B‚µ‚©‚µDES‚̐ê–å‰Æ‚Í‚±‚ê‚𐄏§‚µ‚Ä‚¢‚Ü‚¹‚ñBƒp
  ƒXƒ[ƒh‚Ì’·‚³‚ª”{‚Å‚àAÅ‰‚ɍ¶”¼•ª‚ðƒGƒ“ƒR[ƒh‚µ‚āAŽŸ‚ɉE”¼•ª‚ðƒGƒ“
  ƒR[ƒh‚µ‚Ä‚¢‚邾‚¯‚¾‚©‚ç‚Å‚·B‚±‚ê‚Ícrypt‚Ì“®ì‚Ì‚½‚ß‚Å‚ ‚èAŽn‚ß‚©‚ç
  ”{’·ƒpƒXƒ[ƒh‚ªŽg‚í‚ê‚Ä‚¢‚È‚©‚Á‚½ê‡‚Æ”ä‚ׂĂàA‚æ‚èÆŽã‚ȃpƒXƒ[ƒh
  ‚ðì‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·B‚Ü‚½Aƒ†[ƒU‚É16 •¶Žš‚̃pƒXƒ[ƒh‚ðŠo‚¦‚Ä‚à‚炤‚±
  ‚Ƃ͍¢“ï‚Å‚ ‚é‚Æ‚¢‚¤——R‚à‚ ‚è‚Ü‚·B

  crypt‚É‘ã‚é‚à‚̂ŁA‚æ‚èˆÀ‘S‚Å’·‚¢ƒpƒXƒ[ƒh‚ðƒTƒ|[ƒg‚µ(“Á‚É MD5 ƒAƒ‹
  ƒSƒŠƒYƒ€)A‚³‚ç‚Écrypt‚Ƃ̌݊·«‚ð•ÛŽ‚µ‚Ä‚¢‚é‚悤‚È”FØƒAƒ‹ƒSƒŠƒYƒ€‚ð
  ŠJ”­‚µ‚悤‚Æ‚µ‚Ä‚¢‚éƒvƒƒWƒFƒNƒg‚ª‚ ‚è‚Ü‚·B

  ‚à‚µA“ÇŽÒ‚ªˆÃ†‰»‚ɂ‚¢‚Ä‚Ì—Ç‚¢–{‚ð’T‚µ‚Ä‚¢‚é‚È‚çA•MŽÒ‚͈ȉº‚Ì–{‚ð„
  ‘E‚µ‚Ä‚¨‚«‚Ü‚·:

          "Applied Cryptography: Protocols, Algorithms, and Source Code in C"
          by Bruce Schneier <schneier@chinet.com>
          ISBN: 0-471-59756-2

  3.  Shadow Suite ‚Ì“üŽè

  3.1.  Linux —p‚Ì Shadow Suite ‚Ì—ðŽj

  ƒZƒLƒ…ƒŠƒeƒBã‚Ì–â‘肪‚ ‚é‚̂ŁA‚±‚̐߂ŏq‚ׂéŒÃ‚¢ƒpƒbƒP[ƒW‚ðŽg‚Á‚Ä‚Í
  ‚¢‚¯‚Ü‚¹‚ñB

  ƒIƒŠƒWƒiƒ‹‚Ì Shadow Suite ‚Í John F. Haugh IIŽ‚É‚æ‚Á‚č쐬‚³‚ê‚Ü‚µ
  ‚½B

  Linux ƒVƒXƒeƒ€ã‚Å—p‚¢‚ç‚ê‚Ä‚«‚½ƒo[ƒWƒ‡ƒ“‚Í‚¢‚­‚‚©‚ ‚è‚Ü‚·:

  o  shadow-3.3.1 ‚̓IƒŠƒWƒiƒ‹‚Å‚·B

  o  shadow-3.3.1-2 ‚Í Florian La Roche <flla@stud.uni-sb.de> Ž‚É‚æ‚Á‚Ä
     ‘‚©‚ꂽ Linux ê—p‚̃pƒbƒ`‚ŁA“ÆŽ©‚ÌŠg’£‚à‚µ‚Ä‚¢‚Ü‚·B

  o  shadow-mk Linux ê—p‚̃pƒbƒP[ƒW‚Å‚·B

  shadow-mkƒpƒbƒP[ƒW‚Í John F. Haugh II Ž‚ª”z•z‚µ‚Ä‚¢‚é shadow-3.3.1
  ƒpƒbƒP[ƒW‚É shadow-3.3.1-2 ‚ւ̃pƒbƒ`A Mohan Kokal
  <magnus@texas.net> Ž‚É‚æ‚Á‚Ä‚È‚³‚ꂽƒCƒ“ƒXƒg[ƒ‹‚ðŠÈ’P‚É‚·‚邽‚߂̏C
  ³AJoseph R.M. Zbiciak Ž‚É‚æ‚é /bin/login ‚Ì -f, -h ‚̃IƒvƒVƒ‡ƒ“Žž‚Ì
  “®ì‚ɂ‚¢‚ẴZƒLƒ…ƒŠƒeƒBƒz[ƒ‹‚ðÇ‚®‚½‚ß‚Ì login1.c (login.secure)
  ‚ɑ΂·‚éƒpƒbƒ`‹y‚Ñ‚»‚Ì‘¼‚¢‚­‚‚©‚̕ύX‚ð‰Á‚¦‚½‚à‚Ì‚Å‚·B

  shadow.mkƒpƒbƒP[ƒW‚Í ˆÈ‘O‚͐„§‚³‚ê‚Ä‚¢‚Ü‚µ‚½‚ªA loginƒvƒƒOƒ‰ƒ€‚̃Z
  ƒLƒ…ƒŠƒeƒBã‚Ì–â‘肪‚ ‚é‚Ì‚ÅŽg‚¤‚ׂ«‚Å‚Í‚È‚¢‚Å‚µ‚傤B

  ƒo[ƒWƒ‡ƒ“ 3.3.1, 3.3.1-2 ‚Ì Shadow ‚Æ shadow-mk ‚Å‚ÍloginƒvƒƒOƒ‰ƒ€‚É
  ƒZƒLƒ…ƒŠƒeƒBã‚Ì–â‘肪‚ ‚è‚Ü‚·B‚±‚Ìlogin ‚̃oƒO‚̓ƒOƒCƒ“–¼‚Ì’·‚³‚ð
  ƒ`ƒFƒbƒN‚µ‚È‚¢‚Æ‚¢‚¤‚à‚Ì‚Å‚·B‚±‚ê‚É‚æ‚èƒoƒbƒtƒ@‚ªƒI[ƒo[ƒtƒ[‚µ‚ăv
  ƒƒOƒ‰ƒ€‚ªˆÙí“®ì‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·BƒVƒXƒeƒ€ã‚ɃAƒJƒEƒ“ƒg‚ðŽ‚Á‚Ä‚¢‚él
  ŠÔ‚́A‚±‚̃oƒO‚Æ‹¤—Lƒ‰ƒCƒuƒ‰ƒŠ‚ðŽg‚Á‚Ä root ‚ÌŒ ŒÀ‚ðŽè‚É“ü‚ê‚邱‚Æ‚ª‚Å
  ‚«‚é‚Æ‚¢‚¤‰\‚ª—¬‚ê‚Ü‚µ‚½BŽ„‚Í‚±‚ê‚ɂ‚¢‚ďڂµ‚¢˜b‚ð‚·‚é‚‚à‚è‚Í‚ ‚è‚Ü
  ‚¹‚ñB‰e‹¿‚ð‚¤‚¯‚é Linux ƒVƒXƒeƒ€‚Í‘½‚¢‚¯‚ê‚ǁA‚±‚ê‚ç‚ÌShadow Suites
  ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½ Linux ƒVƒXƒeƒ€‚⏉Šúƒo[ƒWƒ‡ƒ“‚Ì ELF ”ŃpƒbƒP[ƒW‚Ì
  ƒVƒXƒeƒ€‚ÅShadow Suites‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚È‚¢‚à‚̂͊댯‚É‚³‚炳‚ê‚é
  ‚©‚ç‚Å‚·B

  ‚±‚̘b‘è‚âA‚»‚Ì‘¼‚Ì Linux ‚̃ZƒLƒ…ƒŠƒeƒB‚ɂ‚¢‚Ă̏î•ñ‚𓾂邽‚ß‚É
  ‚́A Linux Security ƒz[ƒ€ƒy[ƒW (‹¤—Lƒ‰ƒCƒuƒ‰ƒŠ‚ÆloginƒvƒƒOƒ‰ƒ€ ‚̐Æ
  Žã«) <http://bach.cis.temple.edu/linux/linux-security/Linux-Security-
  FAQ/Linux-telnetd.html> ‚ðŒ©‚é‚Æ‚æ‚¢‚Å‚µ‚傤B

  3.2.  Shadow Suite ‚Ì“üŽè

  Œ»Ý„§‚³‚ê‚é—Bˆê‚Ì Shadow Suite ‚Í‚Ü‚¾ƒÀƒo[ƒWƒ‡ƒ“‚Å‚·‚ªAÅV‚Ì‚à‚Ì
  ‚͍ì‚Á‚Ä‚¢‚éŠÂ‹«‚ł͈À‘S‚Å‚ ‚èAŠëŒ¯‚È loginƒvƒƒOƒ‰ƒ€‚àŠÜ‚ñ‚Å‚¢‚Ü‚¹
  ‚ñB

  ƒpƒbƒP[ƒW‚͈ȉº‚Ì–¼‘O•t‚¯‚Ì‹K‘¥‚ðŽg‚Á‚Ä‚¢‚Ü‚·:

       shadow-YYMMDD.tar.gz

  ‚́AShadow Suite ‚Ì YY”NMMŒŽDD“ú ŒöŠJ‚µ‚½”Å‚Å‚ ‚邱‚Æ‚ðˆÓ–¡‚µ‚Ü‚·B

  ‚±‚̃o[ƒWƒ‡ƒ“‚ÍŒ»ÝƒÀƒeƒXƒg’†‚Å‚ ‚èA‚₪‚ăo[ƒWƒ‡ƒ“ 3.3.3 ‚É‚È‚é‚Å
  ‚µ‚傤B¡‚ÍMarek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> Ž
  ‚É‚æ‚Á‚ăƒ“ƒeƒiƒ“ƒX‚³‚ê‚Ä‚¨‚èA shadow-current.tar.gz
  <ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/shadow-
  current.tar.gz> ‚©‚ç“üŽè‰Â”\‚Å‚·B

  ‚Ü‚½AˆÈ‰º‚̃~ƒ‰[ƒTƒCƒg‚à‚ ‚è‚Ü‚·:

  o  ftp://ftp.icm.edu.pl/pub/Linux/shadow/shadow-current.tar.gz

  o  ftp://iguana.hut.fi/pub/linux/shadow/shadow-current.tar.gz

  o  ftp://ftp.cin.net/usr/ggallag/shadow/shadow-current.tar.gz

  o  ftp://ftp.netural.com/pub/linux/shadow/shadow-current.tar.gz

  Œ»Ý—˜—p‚Å‚«‚éÅV”Å‚ð—˜—p‚µ‚Ü‚µ‚傤B

  shadow-960129‚æ‚èŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Ì‚à‚̂͐æ’öq‚ׂ½‚悤‚É loginƒvƒƒOƒ‰
  ƒ€‚É–â‘肪‚ ‚é‚Ì‚ÅŽg‚Á‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB

  ‚±‚Ì•¶‘’†‚Å Shadow Suite ‚Ə‘‚­Žž‚́A‚±‚̃pƒbƒP[ƒW‚ɂ‚¢‚Ä‹Lq‚µ‚Ä‚¢
  ‚é‚à‚Ì‚Æ‚µ‚Ü‚·B‚Ü‚½A‚ ‚È‚½‚ªŽg‚¤ƒpƒbƒP[ƒW‚à‚±‚ê‚Å‚ ‚é‚à‚̂Ɖ¼’肵‚Ü
  ‚·B

  ŽQl‚Ì‚½‚߂ɁAshadow-960129 ‚ÉŠî‚¢‚ăCƒ“ƒXƒg[ƒ‹‚̎菇‚ðì¬‚µ‚Ü‚µ
  ‚½B

  ‚à‚µ‚ ‚È‚½‚ªŒ»Ýshadow-mk‚ðŽg‚Á‚Ä‚¢‚é‚È‚ç‚΁A‚·‚ׂčč\’z‚µ‚Ä‚±‚̃o[
  ƒWƒ‡ƒ“‚ɃAƒbƒvƒOƒŒ[ƒh‚·‚é‚ׂ«‚Å‚µ‚傤B

  3.3.  Shadow Suite ‚ɂ͉½‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é‚©

  Shadow Suite‚͈ȉº‚̃Rƒ}ƒ“ƒh‚ð’u‚«Š·‚¦‚Ü‚·:

  su, login, passwd, newgrp, chfn, chsh, and id

  ‚Ü‚½AƒpƒbƒP[ƒW‚ɂ͈ȉº‚̐V‚µ‚¢ƒvƒƒOƒ‰ƒ€‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·:

  chage, newusers, dpasswd, gpasswd, useradd, userdel, usermod,
  groupadd, groupdel, groupmod, groups, pwck, grpck, lastlog, pwconv,
  and pwunconv

  ‰Á‚¦‚āAƒpƒXƒ[ƒh‚ɃAƒNƒZƒX‚·‚é•K—v‚ª‚ ‚éƒvƒƒOƒ‰ƒ€‚ðì‚邽‚߂̃‰ƒCƒu
  ƒ‰ƒŠ libshadow.a ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B

  ‚»‚µ‚āAƒvƒƒOƒ‰ƒ€‚̃Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚àŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B

  /etc/login.defs ‚Æ‚µ‚ăCƒ“ƒXƒg[ƒ‹‚³‚ê‚éAlogin ƒvƒƒOƒ‰ƒ€‚̐ݒèƒtƒ@ƒC
  ƒ‹‚àŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B

  4.  ƒvƒƒOƒ‰ƒ€‚̃Rƒ“ƒpƒCƒ‹

  4.1.  ƒA[ƒJƒCƒu‚Ì“WŠJ

  ƒpƒbƒP[ƒW‚ð“üŽè‚µ‚½Œã‚̍ŏ‰‚̍ì‹Æ‚Í‚±‚ê‚ð“WŠJ‚·‚邱‚Æ‚Å‚·BƒpƒbƒP[ƒW
  ‚Í tar (Tape ARchive) ‚Å‚Ü‚Æ‚ß‚½Œã‚É gzip ‚ň³k‚µ‚Ä‚ ‚é‚̂ŁA‚Ü‚¸ƒpƒb
  ƒP[ƒW‚ð /usr/src ‚Ɉړ®‚³‚¹‚Ä‚©‚玟‚̂悤‚É“ü—Í‚µ‚ĉº‚³‚¢:

       tar -xzvf shadow-current.tar.gz

  ‚±‚Ì‘€ì‚ŃpƒbƒP[ƒW‚Í /usr/src/shadow-YYMMDD ‚Æ‚¢‚¤ƒfƒBƒŒƒNƒgƒŠ‚É“WŠJ
  ‚³‚ê‚Ü‚·B

  4.2.  config.h ‚É‚æ‚éÝ’è

  ‚Ü‚¸Å‰‚ɍs‚È‚¤‚±‚Æ‚ÍMakefile‚Æconfig.h‚Ì2‚‚ðã‘‚«ƒRƒs[‚·‚邱‚Æ‚Å
  ‚·:
       cd /usr/src/shadow-YYMMDD
       cp Makefile.linux Makefile
       cp config.h.linux config.h

  ‚Ü‚¸ config.h ƒtƒ@ƒCƒ‹‚ðŒ©‚Ä‚­‚¾‚³‚¢B‚±‚̃tƒ@ƒCƒ‹‚ɂ͐ݒèƒIƒvƒVƒ‡ƒ“‚Ì
  ’è‹`‚ª‘‚©‚ê‚Ä‚¢‚Ü‚·B‚à‚µA‚ ‚È‚½‚ª„§‚³‚ê‚Ä‚¢‚éƒpƒbƒP[ƒW‚ð—p‚¢‚Ä‚¢
  ‚éê‡‚ɂ́A‚Ü‚¸ƒOƒ‹[ƒv‚ÌshadowƒTƒ|[ƒg‚ð‚Ü‚¸–³Œø‚É‚µ‚Ü‚µ‚傤B

  •W€‚ł̓Oƒ‹[ƒv‚̃pƒXƒ[ƒh‚Í—LŒø‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚𖳌ø‚É‚·‚邽‚ß
  ‚É‚Íconfig.h‚ð•ÒW‚µA#define SHADOWGRP ‚ð #undef SHADOWGRP ‚ɕύX‚µ‚Ü
  ‚·B‚Æ‚è‚ ‚¦‚¸‚Í‚±‚ê‚𖳌ø‚É‚µ‚Ä‚¨‚«A‚ ‚Æ‚Å–{“–‚ɃOƒ‹[ƒv‚̃pƒXƒ[ƒh
  ‚âƒOƒ‹[ƒv‚ÌŠÇ—ŽÒ‚ª•K—v‚Æ‚È‚Á‚½Žž‚É Shadow Suite ‚ðÄƒRƒ“ƒpƒCƒ‹‚·‚é‚×
  ‚«‚Å‚µ‚傤B‚à‚µ—LŒø‚È‚Ü‚Ü‚É‚µ‚Ä‚¨‚­‚Ì‚È‚ç‚΁A/etc/gshadow ƒtƒ@ƒCƒ‹‚ð
  ì‚ç‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

  ”{’·ƒpƒXƒ[ƒh‚ð—LŒø‚É‚·‚邱‚Æ‚Í‘O‚ɏq‚ׂ½——R‚Ì‚½‚߁A„§‚µ‚Ü‚¹‚ñB

  #undef AUTOSHADOW ‚̐ݒè‚͐â‘΂ɕύX‚µ‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB

  AUTOSHADOW ƒIƒvƒVƒ‡ƒ“‚Í shadow ‚𗝉ð‚Å‚«‚È‚¢ƒvƒƒOƒ‰ƒ€‚à‹@”\‚·‚é‚悤
  ‚É‚·‚邽‚߂ɐ݌v‚³‚ꂽ‚à‚Ì‚Å‚·B‚±‚ê‚Í—Ç‚¢‚±‚Ƃ̂悤‚ÉŽv‚¦‚Ü‚·‚ªA‚«‚¿
  ‚ñ‚Æ“®‚«‚Ü‚¹‚ñB‚±‚̃IƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µAroot ‚ŃvƒƒOƒ‰ƒ€‚ðŽÀs‚·‚é
  ‚ƁA getpwnam() ŠÖ”‚ðŒÄ‚яo‚³‚ꂽê‡‚ɂ͕ύX‚³‚ꂽƒGƒ“ƒgƒŠ[‚ð
  /etc/passwd ƒtƒ@ƒCƒ‹‚ɏ‘‚«–ß‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B (‚à‚Í‚âshadow ‰»‚³‚ꂽƒp
  ƒXƒ[ƒh‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¤) chfn ‚â chsh ‚ª‚±‚ê‚ÉŠY“–‚·‚éƒvƒƒOƒ‰ƒ€‚Å
  ‚·Bgetpwnam()‚ðŒÄ‚яo‚·‘O‚ɐ^‚ÌUID‚ÆŽÀŒøUID‚ð‚¤‚Ü‚­Ø‘Ö‚¦‚邱‚Ƃʼnñ”ð
  ‚·‚é‚Æ‚¢‚¤•û–@‚ÍŽg‚¦‚Ü‚¹‚ñB chfn ‚â chsh ‚Í root Œ ŒÀ‚Å“®ì‚·‚é‚©‚ç‚Å
  ‚·B

  libc ‚É‚Í“¯‚¶ˆÓ–¡‚ðŽ‚Â SHADOW_COMPAT ƒIƒvƒVƒ‡ƒ“‚ª‚ ‚è‚Ü‚·‚ªA“¯‚¶’ˆÓ
  ‚ª libc ‚ðì‚éÛ‚É‚à“–‚Ä‚Í‚Ü‚è‚Ü‚·BŽg‚¤‚ׂ«‚Å‚Í‚ ‚è‚Ü‚¹‚ñI

  ‚à‚µ/etc/passwdƒtƒ@ƒCƒ‹‚ɃGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh‚ªŒ»‚í‚ê‚é‚悤‚È‚ç
  ‚Ζâ‘è‚Å‚·B

  ‚à‚µ4.6.27 ˆÈ‘O‚̃o[ƒWƒ‡ƒ“‚Ìlibc‚ðŽg‚Á‚Ä‚¢‚é‚È‚çA
  config.h‚ÆMakefile‚ð‚»‚ê‚¼‚ê•ÏX‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B config.h ‚͈ȉº‚Ì
  •”•ª‚ð:

       #define HAVE_BASENAME

  ‚±‚̂悤‚ɕύX‚µ‚Ä‚­‚¾‚³‚¢:

       #undef HAVE_BASENAME

  Makefile ‚ɂ‚¢‚Ä‚à“¯—l‚Å‚·:

       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

  libc 4.6.27 ˆÈ~‚Å‚Í‚±‚ê‚ç‚̕ύX‚Íbasename.c‚ɑ΂µ‚čs‚í‚ê‚Ä‚¢‚Ü‚·B

  4.3.  Œ³‚̃vƒƒOƒ‰ƒ€‚̃oƒbƒNƒAƒbƒv‚̍쐬

  Shadow Suite ‚ª’u‚«Š·‚¦‚Ä‚µ‚Ü‚¤ƒvƒƒOƒ‰ƒ€‚ð‚ ‚ç‚©‚¶‚ߊm”F‚µ‚Ä‚¨‚«A
  ƒoƒbƒNƒAƒbƒv‚ðŽæ‚Á‚Ä‚¨‚­‚Ì‚Í—Ç‚¢l‚¦‚Å‚·BSlackware 3.0 ƒpƒbƒP[ƒW‚Å‚Í
  ˆÈ‰º‚̃tƒ@ƒCƒ‹‚ªŠY“–‚µ‚Ü‚·:

  o  /bin/su

  o  /bin/login

  o  /usr/bin/passwd

  o  /usr/bin/newgrp

  o  /usr/bin/chfn

  o  /usr/bin/chsh

  o  /usr/bin/id

  ƒÀ”ŃpƒbƒP[ƒW‚É‚Í Makefile ’†‚Ésave ‚Æ‚¢‚¤ƒ^[ƒQƒbƒg‚ª‚ ‚è‚Ü‚·‚ªAƒR
  ƒƒ“ƒgƒAƒEƒg‚³‚ê‚Ä‚¢‚Ü‚·BƒpƒbƒP[ƒW‚ªˆÙ‚È‚ê‚΃vƒƒOƒ‰ƒ€‚Ì’u‚«êŠ‚àˆÙ
  ‚È‚é‚©‚ç‚Å‚·B

  /etc/passwdƒtƒ@ƒCƒ‹‚̃oƒbƒNƒAƒbƒv‚àŽæ‚Á‚Ä‚¨‚¢‚½‚Ù‚¤‚ª—Ç‚¢‚Å‚µ‚å
  ‚¤BpasswdƒRƒ}ƒ“ƒh‚Æ“¯‚¶ƒfƒBƒŒƒNƒgƒŠ‚É’u‚¢‚ď㏑‚«‚µ‚Ä‚µ‚Ü‚í‚È‚¢‚悤
  ‚ɁA‰½‚©•Ê‚Ì–¼‘O‚É‚µ‚Ü‚µ‚傤B

  4.4.  Make ‚ÌŽÀs

  ƒCƒ“ƒXƒg[ƒ‹ì‹Æ‚Ì‚Ù‚Æ‚ñ‚Ç‚Íroot‚Æ‚µ‚čs‚¤•K—v‚ª‚ ‚è‚Ü‚·B

  ƒpƒbƒP[ƒW‚ÌŽÀsƒtƒ@ƒCƒ‹‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚ß‚É make ‚ðŽÀs‚µ‚ĉº‚³‚¢:

  make all

  rcsid defined but not used ‚Æ‚¢‚¤ƒEƒH[ƒjƒ“ƒO‚ªo‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñ‚ªA
  –³Ž‹‚µ‚č\‚¢‚Ü‚¹‚ñB‚±‚ê‚͍ìŽÒ‚ªƒo[ƒWƒ‡ƒ“ŠÇ—ƒc[ƒ‹‚ðŽg‚Á‚Ä‚¢‚邽‚ß‚É
  ‹N‚±‚é‚à‚Ì‚Å‚·B

  5.  ƒCƒ“ƒXƒg[ƒ‹

  5.1.  ƒVƒXƒeƒ€”j‰ó‚É”õ‚¦‚Ẵu[ƒgƒfƒBƒXƒNì¬

  Åˆ«‚ÌŽ–‘Ô‚É”õ‚¦‚āAƒu[ƒgƒfƒBƒXƒN‚ðì‚Á‚Ä‚¨‚«‚Ü‚µ‚傤BƒVƒXƒeƒ€‚ðƒCƒ“
  ƒXƒg[ƒ‹‚µ‚½Žž‚̃u[ƒgƒfƒBƒXƒN‚ƃ‹[ƒgƒfƒBƒXƒN‚ª‚ ‚ê‚Ώ\•ª‚Å‚·B–³‚¢ê
  ‡‚ɂ́Aƒu[ƒgƒfƒBƒXƒN‚̍쐬‚ɂ‚¢‚Ä‚Ìà–¾‚ª‘‚©‚ê‚Ä‚¢‚é Bootdisk-
  HOWTO <http://sunsite.unc.edu/mdw/HOWTO/Bootdisk-HOWTO.html> ‚ðŽQÆ‚µ
  ‚ĉº‚³‚¢B

  5.2.  d•¡‚·‚éƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚̍폜

  ’u‚«Š·‚¦‚ç‚ê‚éŒÃ‚¢ƒ}ƒjƒ…ƒAƒ‹‚Í‚Ç‚±‚©‚Ɉڂµ‚Ä‚¨‚­‚ׂ«‚Å‚·BƒoƒbƒNƒAƒbƒv
  ‚È‚µ‚Å Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éê‡‚Å‚àAŒÃ‚¢ƒ}ƒjƒ…ƒAƒ‹‚ðÁ‚µ‚Ä
  ‚µ‚Ü‚¢‚½‚­‚È‚é‚Å‚µ‚傤BŒÃ‚¢ƒ}ƒjƒ…ƒAƒ‹‚Í‚¨‚»‚ç‚­ˆ³k‚³‚ê‚Ä‚¢‚é‚̂ŁAV
  ‚µ‚¢ƒ}ƒjƒ…ƒAƒ‹‚Í‚¤‚Ü‚­ã‘‚«‚³‚ê‚È‚¢‚©‚ç‚Å‚·B

  man -aW ‚Æ locate ƒRƒ}ƒ“ƒh‚ðŽg‚Á‚Ĉړ®(íœ)‚·‚ׂ«ƒ}ƒjƒ…ƒAƒ‹‚̈ʒu‚ð’²
  ‚ׂ邱‚Æ‚ª‚Å‚«‚Ü‚·Bˆê”Ê“I‚É‚Í make install ‚ðŽÀs‚µ‚½Œã‚æ‚è‚àŽÀs‚·‚é
  ‘O‚Ì•û‚ªŒÃ‚¢ƒ}ƒjƒ…ƒAƒ‹‚̏ꏊ‚ðŒ©‚Â‚¯‚é‚Ì‚ª—eˆÕ‚Å‚·B

  Slackware 3.0 ƒpƒbƒP[ƒW‚̏ꍇ‚ɂ͍폜‚·‚ׂ«ƒ}ƒjƒ…ƒAƒ‹‚͈ȉº‚̏ꏊ‚É‚ 
  ‚è‚Ü‚·:

  o  /usr/man/man1/chfn.1.gz

  o  /usr/man/man1/chsh.1.gz

  o  /usr/man/man1/id.1.gz

  o  /usr/man/man1/login.1.gz

  o  /usr/man/man1/passwd.1.gz

  o  /usr/man/man1/su.1.gz

  o  /usr/man/man5/passwd.5.gz

  /var/man/cat[1-9] ‚É‚à“¯‚¶–¼‘O‚̃Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ª‚ ‚é‚©‚à’m‚ê‚È‚¢
  ‚̂ŁA‚ ‚ê‚΍폜‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B

  5.3.  make install ‚ÌŽÀs

  ˆÈ‰º‚̃Rƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚µ‚傤:(root‚É‚È‚Á‚Ä‚©‚çŽÀs‚µ‚ĉº‚³‚¢)

       make install

  ‚±‚ê‚ŁAV‚µ‚¢ƒvƒƒOƒ‰ƒ€‹y‚Ñ’u‚«Š·‚¦‚ç‚ê‚éƒvƒƒOƒ‰ƒ€‚ªƒCƒ“ƒXƒg[ƒ‹‚³
  ‚êAƒtƒ@ƒCƒ‹‚̃p[ƒ~ƒbƒVƒ‡ƒ“‚ªC³‚³‚ê‚Ü‚·B‚Ü‚½AƒIƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹
  ‚àƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ü‚·B

  Shadow Suite ‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ª ³‚µ‚¢êŠ (/usr/include/shadow)
  ‚ɃCƒ“ƒXƒg[ƒ‹‚³‚ꂽ‚©‚Ç‚¤‚©Šm”F‚µ‚ĉº‚³‚¢B

  ƒÀ”ŃpƒbƒP[ƒW‚ðŽg‚Á‚Ä‚¢‚éê‡‚ɂ́Alogin.defs‚ðŽè“®‚Å /etc‚ÖƒRƒs[‚µ
  ‚āAroot ‚¾‚¯‚µ‚©“ǂݏ‘‚«‚Å‚«‚È‚¢‚悤‚É‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

       cp login.defs /etc
       chmod 700 /etc/login.defs

  ‚±‚̃tƒ@ƒCƒ‹‚ÍloginƒvƒƒOƒ‰ƒ€‚̐ݒèƒtƒ@ƒCƒ‹‚Å‚·B‚±‚̃tƒ@ƒCƒ‹‚Í‚ ‚È‚½
  ‚̃VƒXƒeƒ€‚ɍ‡‚킹‚ĕύX‚µ‚Ä‚­‚¾‚³‚¢B‚±‚̃tƒ@ƒCƒ‹‚ł́A‚Ç‚Ì tty ‚©‚ç
  root ‚̃ƒOƒCƒ“‚ð‹–‚·‚©‚ȂǃZƒLƒ…ƒŠƒeƒB‚ÉŠÖ‚·‚éÝ’è(ƒpƒXƒ[ƒh‚ÌŠúŒÀÝ
  ’è‚È‚Ç)‚ª‚Å‚«‚Ü‚·B

  5.4.  pwconv ‚ÌŽÀs

  ŽŸ‚̃Xƒeƒbƒv‚Í pwconv ‚ðŽÀs‚·‚邱‚Æ‚Å‚·B‚±‚ê‚àroot Œ ŒÀ‚ōs‚í‚È‚¯‚ê
  ‚΂Ȃè‚Ü‚¹‚ñB‚Ü‚½A/etc ƒfƒBƒŒƒNƒgƒŠ‚ÖˆÚ“®‚µ‚Ä‚©‚çŽÀs‚µ‚ĉº‚³‚¢:

       cd /etc
       /usr/sbin/pwconv

  pwconv ‚Í /etc/passwd ‚ÌŠeƒtƒB[ƒ‹ƒh‚ðŽæ‚èo‚µ‚āA /etc/npasswd ‚Æ
  /etc/nshadow ‚Ì2‚‚̃tƒ@ƒCƒ‹‚ðì‚è‚Ü‚·B

  pwunconv ‚Æ‚¢‚¤ƒRƒ}ƒ“ƒh‚à‚ ‚èA‚à‚µ•K—v‚È‚ç‚Î /etc/passwd ‚Æ
  /etc/shadow ‚©‚畁’Ê‚Ì /etc/passwd ‚𐶐¬‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B

  5.5.  npasswd ‚Æ nshadow ‚̃Šƒl[ƒ€

  pwconv ‚ðŽÀs‚µ‚½‚±‚Æ‚Å /etc/npasswd ‚Æ /etc/nshadow ‚ª“¾‚ç‚ꂽ‚Í‚¸‚Å
  ‚·B‚±‚ê‚ç‚̃tƒ@ƒCƒ‹‚ð‚»‚ê‚¼‚ê /etc/passwd ‚Æ /etc/shadow ‚ɏ㏑‚«‚µ‚Ä
  ‚­‚¾‚³‚¢Bã‘‚«‚Ì‘O‚É‚ÍŒ³‚Ì /etc/passwd ‚̃oƒbƒNƒAƒbƒv‚ðì‚èA‚±‚Ì
  ƒoƒbƒNƒAƒbƒv‚Í root ˆÈŠO‚̃†[ƒU‚Í“Ç‚ß‚È‚¢‚悤‚É‚µ‚Ä‚¨‚«‚Ü‚µ‚傤Bƒoƒb
  ƒNƒAƒbƒv‚Í root ‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚ɍì‚é‚Æ—Ç‚¢‚Å‚µ‚傤:

       cd /etc
       cp passwd ~passwd
       chmod 600 ~passwd
       mv npasswd passwd
       mv nshadow shadow

  ‚³‚ç‚ɁAƒtƒ@ƒCƒ‹‚̃I[ƒi‚ƃp[ƒ~ƒbƒVƒ‡ƒ“‚ª³‚µ‚¢‚©‚Ç‚¤‚©Šm”F‚µ‚Ü‚µ‚å
  ‚¤B X-Window System ‚ðŽg‚Á‚Ä‚¢‚é‚È‚ç‚΁Axlock ‚â xdm ‚Í shadow ƒtƒ@ƒC
  ƒ‹‚ð“Ç‚ß‚é‚悤‚É‚È‚Á‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ(‘‚«ž‚Ý‚ª‚Å‚«‚é•K—v‚Í‚ ‚è
  ‚Ü‚¹‚ñ)B

  ‚±‚ê‚É‚Í2‚‚̕û–@‚ª‚ ‚è‚Ü‚·Bˆê‚‚́Axlock‚ð root ‚É SUID ‚·‚é•û–@‚Å
  ‚·B(xdm ‚Í‚¢‚¸‚ê‚É‚¹‚æ root ‚Æ‚µ‚Ä“®ì‚·‚é‚Ì‚ÅŠÖŒW‚ ‚è‚Ü‚¹‚ñB) ‚à‚¤
  ˆê‚Â‚Í shadow ƒtƒ@ƒCƒ‹‚̏Š—LŽÒ‚Íroot‚ɁAƒOƒ‹[ƒv‚Íshadow‚É‚·‚é•û–@‚Å
  ‚·B‚±‚̂悤‚Ȑݒè‚É‚·‚é‘O‚ɂ́A/etc/group ƒtƒ@ƒCƒ‹‚ðŒ©‚ÄA shadow ƒO
  ƒ‹[ƒv‚ª‚ ‚é‚©‚Ç‚¤‚©‚ð‚Ü‚¸Šm”F‚µ‚Ä‚­‚¾‚³‚¢Bshadow ƒOƒ‹[ƒv‚É‘®‚·‚郆
  [ƒU‚͈êl‚à‚¢‚Ä‚Í‚¢‚¯‚Ü‚¹‚ñB

       chown root.root passwd
       chown root.shadow shadow
       chmod 0644 passwd
       chmod 0640 shadow

  ‚±‚ê‚Å‚ ‚È‚½‚̃VƒXƒeƒ€‚̃pƒXƒ[ƒh‚Í shadow ‰»‚³‚ê‚Ü‚µ‚½B‚±‚±‚ŁAV‚µ
  ‚­‰¼‘z’[––‚ðŠJ‚¢‚ăƒOƒCƒ“‚ª‚Å‚«‚é‚©‚Ç‚¤‚©Šm”F‚µ‚Ä‚Ý‚Ü‚µ‚傤B

  ‚³‚ A‚â‚Á‚Ä‚Ý‚Ü‚µ‚傤I

  ‚à‚µ‚¤‚Ü‚­‚¢‚©‚È‚¢ê‡‚́A‚Ç‚±‚©‚ŊԈႦ‚Ä‚¢‚Ü‚·Bshadow ‰»‚³‚ê‚Ä‚¢‚È
  ‚¢ó‘Ô‚É–ß‚·‚½‚߂ɂ͈ȉº‚̂悤‚Ȏ葱‚«‚ðs‚Á‚ĉº‚³‚¢:

       cd /etc
       cp ~passwd passwd
       chmod 644 passwd

  Å‰‚ɃoƒbƒNƒAƒbƒv‚ðŽæ‚Á‚½‘¼‚̃tƒ@ƒCƒ‹‚à³‚µ‚¢êŠ‚É–ß‚µ‚Ü‚µ‚傤B

  6.  ƒAƒbƒvƒOƒŒ[ƒh‚·‚é‚©ƒpƒbƒ`‚ð“–‚Ä‚é•K—v‚ª‚ ‚éƒvƒƒOƒ‰ƒ€

  Shadow Suite ‚ɂ̓pƒXƒ[ƒh‚ɃAƒNƒZƒX‚·‚éƒvƒƒOƒ‰ƒ€‚Ù‚Æ‚ñ‚Ç‚Ì‘ã‘Ö•i‚ð
  ŠÜ‚ñ‚Å‚¢‚Ü‚·‚ªA‚Ù‚Æ‚ñ‚ǂ̃VƒXƒeƒ€‚Å‚Í‘¼‚É‚à‚¢‚­‚‚©‚̃vƒƒOƒ‰ƒ€‚ª•K—v
  ‚Æ‚È‚è‚Ü‚·B

  Debian ƒpƒbƒP[ƒW‚Å‚Í(‚»‚¤‚Å‚È‚¢ê‡‚Å‚à\‚¢‚Ü‚¹‚ñ‚ª)AˆÈ‰º‚̏ꏊ‚©‚ç
  ƒVƒXƒeƒ€‚̍č\’z‚É•K—v‚ȃvƒƒOƒ‰ƒ€‚Ì Debian ƒpƒbƒP[ƒW‚̂̃\[ƒX‚ð“üŽè
  ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B ftp://ftp.debian.org/debian/stable/source/

  ‚±‚̐߂̎c‚è‚Íadduser, wu_ftpd, ftpd, pop3d, xlock, xdm and sudo ‚ª
  Shadow Suite ‚ðƒTƒ|[ƒg‚Å‚«‚é‚悤‚É‚·‚邽‚ߍs‚¤ƒAƒbƒvƒOƒŒ[ƒh‚ɂ‚¢‚Ä
  à–¾‚µ‚Ü‚·B

  ‘¼‚̃vƒƒOƒ‰ƒ€‚à shadow ƒTƒ|[ƒg‚Å‚«‚é‚悤‚É‚·‚é•û–@‚Í ``CƒvƒƒOƒ‰ƒ€‚ð
  Shadow Suite ‚ɑΉž‚³‚¹‚é•û–@'' ‚̏͂ðŽQÆ‚µ‚ĉº‚³‚¢B(ŽÀÛ‚É shadow
  ƒtƒ@ƒCƒ‹‚ɃAƒNƒZƒX‚·‚邽‚ß‚É‚Í root ‚É SUID ‚·‚é‚© shadow ‚É SGID ‚·‚é
  •K—v‚ª‚ ‚è‚Ü‚·B)

  6.1.  Slackware adduser program

  Slackware ƒpƒbƒP[ƒW(‚¨‚»‚ç‚­‘¼‚̃pƒbƒP[ƒW‚É‚à)‚É‚Í /sbin/adduser ‚Æ
  ‚¢‚¤‘Θb“I‚ɐV‚µ‚¢ƒ†[ƒU‚ð’ljÁ‚·‚éƒvƒƒOƒ‰ƒ€‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B‚±‚̃vƒ
  ƒOƒ‰ƒ€‚Ì shadow ‘Ήž”Å‚Í ftp://sunsite.unc.edu/pub/Linux/
  system/Admin/accounts/adduser.shadow-1.4.tar.gz ‚©‚ç“üŽè‚Å‚«‚Ü‚·B

  •MŽÒ‚Í slackware ‚Ìadduser‚Ì‘ã‚è‚ÉShadow Suite‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚éƒvƒƒOƒ‰
  ƒ€(useradd, usermod, userdel)‚ðŽg‚¤‚±‚Æ‚ðŠ©‚ß‚Ü‚·BŽg‚¢•û‚͐V‚½‚ÉŠo‚¦
  ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñ‚ªA‚»‚ꂾ‚¯‚̉¿’l‚Í‚ ‚è‚Ü‚·B‚æ‚è×‚©‚¢§Œä‚ª‚Å‚«‚Ü
  ‚·‚µA (adduser‚ł͍s‚í‚È‚¢) /etc/passwd ‚â /etc/shadow‚̃ƒbƒLƒ“ƒO‚à
  ‚µ‚Ä‚­‚ê‚é‚©‚ç‚Å‚·B

  Ú‚µ‚­‚Í ``Shadow Suite ‚ðŽg‚Á‚Ä‚Ý‚é'' ‚ÌÍ‚ðŒ©‚Ä‚­‚¾‚³‚¢B

  ‚»‚ê‚Å‚à adduser ‚ðŽg‚¢‚½‚¢‚È‚ç‚΁AˆÈ‰º‚̂悤‚Ȏ菇‚ŃCƒ“ƒXƒg[ƒ‹‚µ‚Ä
  ‚­‚¾‚³‚¢:

       tar -xzvf adduser.shadow-1.4.tar.gz
       cd adduser
       make clean
       make adduser
       chmod 700 adduser
       cp adduser /sbin

  6.2.  wu_ftpd ƒT[ƒo

  ‘å•”•ª‚Ì Linux ƒVƒXƒeƒ€‚Å‚Í wu_ftpd ƒT[ƒo‚ðŽg‚Á‚Ä‚¢‚Ü‚·B‚à‚µA‚ ‚È‚½
  ‚ÌŽg‚Á‚Ä‚¢‚éƒpƒbƒP[ƒW‚É Shadow Suite‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚È‚¢ê
  ‡Awu_ftpd ‚à shadow ‚ðƒTƒ|[ƒg‚·‚é‚悤‚É‚Í‚È‚Á‚Ä‚¢‚È‚¢‚Å‚µ‚å
  ‚¤Bwu_ftpd ‚Í inetd/tcpd ‚©‚çroot‚̃vƒƒZƒX‚Æ‚µ‚Ä‹N“®‚³‚ê‚Ü‚·B‚à‚µA
  ‚ ‚È‚½‚ªŒÃ‚¢ wu_ftpd ƒf[ƒ‚ƒ“‚𑖂点‚Ä‚¢‚é‚È‚çAƒo[ƒWƒ‡ƒ“‚ðã‚°‚Ä‚­
  ‚¾‚³‚¢BŒÃ‚¢ƒo[ƒWƒ‡ƒ“‚Í root‚̃AƒJƒEƒ“ƒg‚ð”F‚ß‚Ä‚µ‚Ü‚¤ƒoƒO‚ðŽ‚Á‚Ä‚¢
  ‚邱‚Æ‚Å’m‚ç‚ê‚Ä‚¢‚é‚©‚ç‚Å‚·B(Ú‚µ‚­‚Í Linux security ƒz[ƒ€ƒy[ƒW
  <http://bach.cis.temple.edu/linux/linux-security/Linux-Security-
  FAQ/Linux-wu.ftpd-2.4-Update.html>) ‚ðŽQÆ‚µ‚ĉº‚³‚¢B )

  K‚¢Ashadow ‚ð—LŒø‚É‚·‚邽‚߂ɂ̓\[ƒXƒR[ƒh‚ð“üŽè‚µ‚čăRƒ“ƒpƒCƒ‹‚·
  ‚邾‚¯‚Å‚·B

  ELF ƒVƒXƒeƒ€‚Å‚È‚¢ê‡‚ɂ́Awu_ftpƒT[ƒo‚Í Sunsite ‚É wu-
  ftp-2.4-fixed.tar.gz
  <ftp://sunsite.unc.edu/pub/Linux/system/Network/file-transfer/wu-
  ftpd-2.4-fixed.tar.gz> ‚Ì–¼‘O‚Å’u‚¢‚Ä‚¢‚é‚à‚Ì‚ª—˜—p‚Å‚«‚Ü‚·B

  ƒtƒ@ƒCƒ‹‚ð“üŽè‚µ‚½‚çA‚±‚̃tƒ@ƒCƒ‹‚ð /usr/src ‚É’u‚¢‚Ä‚©‚çAˆÈ‰º‚̂悤
  ‚È‘€ì‚ðs‚Á‚Ä‚­‚¾‚³‚¢:

  cd /usr/src
  tar -xzvf wu-ftpd-2.4-fixed.tar.gz
  cd wu-ftpd-2.4-fixed
  cp ./src/config/config.lnx.shadow ./src/config/config.lnx

  ŽŸ‚É ./src/makefiles/Makefile.lnx ƒtƒ@ƒCƒ‹‚̈ȉº‚Ì•”•ª‚ð:

       LIBES    = -lbsd -support

  ŽŸ‚̂悤‚ɕύX‚µ‚Ü‚·:

       LIBES    = -lbsd -support -lshadow

  ‚»‚µ‚āAŽÀsƒtƒ@ƒCƒ‹¶¬ƒXƒNƒŠƒvƒg‚ÌŽÀs‹y‚уCƒ“ƒXƒg[ƒ‹‚ðs‚¢‚Ü‚·:

       cd /usr/src/wu-ftpd-2.4-fixed
       /usr/src/wu-ftp-2.4.fixed/build lnx
       cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
       cp ./bin/ftpd /usr/sbin/wu.ftpd

  ‚±‚ê‚́ALinux —p shadow ‚̐ݒèƒtƒ@ƒCƒ‹‚ðŽg‚Á‚ăT[ƒo‚̃Rƒ“ƒpƒCƒ‹‹y‚уC
  ƒ“ƒXƒg[ƒ‹‚ðs‚¢‚Ü‚·B

  •MŽÒ‚Ì Slackware 2.3 ƒVƒXƒeƒ€‚Å‚ÍŽÀsƒtƒ@ƒCƒ‹¶¬ƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚é
  ‘O‚Ɉȉº‚Ì‘€ì‚ðs‚¤•K—v‚ª‚ ‚è‚Ü‚µ‚½:

       cd /usr/include/netinet
       ln -s in_systm.h in_system.h
       cd -

  ELF ƒVƒXƒeƒ€ã‚ł̓Rƒ“ƒpƒCƒ‹‚ª‚¤‚Ü‚­‚¢‚©‚È‚¢‚±‚Æ‚ª•ñ‚³‚ê‚Ä‚¢‚Ü‚·‚ªA
  ŽŸ‚̃ŠƒŠ[ƒX‚̃À”Å‚ðŽg‚¦‚΂¤‚Ü‚­‚¢‚­‚悤‚Å‚·B‚±‚ê‚́Awu-
  ftp-2.4.2-beta-10.tar.gz <ftp://tscnet.com/pub/linux/network/ftp/wu-
  ftpd-2.4.2-beta-10.tar.gz> ‚Æ‚µ‚Ä“üŽè‚Å‚«‚Ü‚·B

  ƒtƒ@ƒCƒ‹‚ð“üŽè‚µ‚½‚çA‚±‚ê‚ð /usr/src ‚É’u‚¢‚āAˆÈ‰º‚Ì‘€ì‚ðs‚Á‚Ä‚­‚¾
  ‚³‚¢:

  cd /usr/src
  tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
  cd wu-ftpd-beta-9
  cd ./src/config

  ŽŸ‚É config.lnx ƒtƒ@ƒCƒ‹‚̈ȉº‚Ì•”•ª‚ð

       #undef SHADOW.PASSWORD

  ŽŸ‚̂悤‚ɕύX‚µ‚Ü‚·B

       #define SHADOW.PASSWORD

  ‚»‚ê‚©‚çA

       cd ../Makefiles

  ‚ðs‚¢AƒJƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚ð•ÏX‚µ‚Ä‚©‚ç Makefile.lnx ƒtƒ@ƒCƒ‹‚Ì

       LIBES = -lsupport -lbsd # -lshadow

  ‚Ì•”•ª‚ðŽŸ‚Ì‚æ‚¤‚ɕύX‚µ‚Ü‚·B

       LIBES = -lsupport -lbsd -lshadow

  ‚»‚µ‚ÄŽÀsƒtƒ@ƒCƒ‹¶¬‚ƃCƒ“ƒXƒg[ƒ‹‚ðs‚¢‚Ü‚·:

       cd ..
       build lnx
       cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
       cp ./bin/ftpd /usr/sbin/wu.ftpd

  /etc/inetd.conf ƒtƒ@ƒCƒ‹‚É wu_ftpd –{‘Ì‚Ì’u‚«êŠ‚ª‘‚©‚ê‚Ä‚¢‚é‚©‚Ç‚¤
  ‚©‚ðŠm”F‚·‚é‚Ì‚ð–Y‚ê‚È‚¢‚悤‚É‚µ‚Ü‚µ‚傤BƒpƒbƒP[ƒW‚É‚æ‚Á‚Ă̓T[ƒoƒf
  [ƒ‚ƒ“‚Ì’uêŠ‚ªˆá‚¢Awu_ftpd ‚ª•Ê‚Ì–¼‘O‚É‚È‚Á‚Ä‚¢‚é‚à‚Ì‚à‚ ‚é‚Æ‚¢‚¤•ñ
  ‚ª‚ ‚è‚Ü‚µ‚½B
  –ó’: Slackware 3.1 ‚Å‚Í shadow ƒpƒXƒ[ƒh‰»‚ðs‚Á‚½ê‡Awu-ftpd ‚̃R
  ƒ“ƒpƒCƒ‹‚ÉŽ¸”s‚·‚éê‡‚ª‚ ‚è‚Ü‚·B‰º‹L‚̂悤‚ȃGƒ‰[‚ªo‚éê‡‚É‚Í
  src/makefiles/Makefile.lnx ‚Ì CFLAGS ‚É "-DDIRENT_ILLEGAL_ACCESS" ‚ð‰Á
  ‚¦‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B (‚±‚̏î•ñ‚͍‚Î—L“‡“d‹@‘傳‚ñ‚æ‚è’¸‚«‚Ü‚µ‚½B)

  ______________________________________________________________________
  gcc -O2 -fomit-frame-pointer -I.. -I../support -I/usr/include/bsd -L../suppors
   -c glob.c -o glob.o
  glob.c: In function `matchdir':
  glob.c:284: dereferencing pointer to incomplete type
  make: *** [glob.o] Error 1
  ______________________________________________________________________

  6.3.  •W€‚Ì ftpd

  •W€‚Ì ftpd ƒT[ƒo‚ðŽg‚Á‚Ä‚¢‚éê‡‚É‚Í wu_ftpd ƒT[ƒo‚ɃAƒbƒvƒOƒŒ[ƒh
  ‚·‚邱‚Æ‚ðŠ©‚ß‚Ü‚·Bæ’öq‚ׂ½ƒoƒO‚ðœ‚¯‚΁A‚æ‚èˆÀ‘S‚¾‚Æ‚³‚ê‚Ä‚¢‚é‚©‚ç
  ‚Å‚·B

  ‚Ç‚¤‚µ‚Ä‚à•W€‚Ì‚à‚Ì‚ðŽg‚¢‚½‚¢ê‡‚âANIS ‚ðƒTƒ|[ƒg‚·‚é•K—v‚ª‚ ‚éê‡
  ‚É‚Í Sunsite ‚©‚ç ftpd-shadow-nis.tgz
  <ftp://sunsite.unc.edu/pub/Linux/system/Network/file-transfer/ftpd-
  shadow-nis.tgz> ‚ð“üŽè‚µ‚ĉº‚³‚¢B

  6.4.  pop3d (Post Office Protocol 3)

  ‚à‚µAPOP3(the third Post Office Protocol) ‚ðƒTƒ|[ƒg‚·‚é•K—v‚ª‚ ‚éê
  ‡‚É‚Í pop3d ‚ðÄƒRƒ“ƒpƒCƒ‹‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B pop3d ‚Í inet/tcpd ‚©
  ‚çrootŒ ŒÀ‚ÅŽÀs‚³‚ê‚Ü‚·B

  Sunsite ‚©‚ç2‚‚̈قȂéƒo[ƒWƒ‡ƒ“‚Ì‚à‚Ì‚ð“üŽè‚Å‚«‚Ü‚·:
  pop3d-1.00.4.linux.shadow.tar.gz
  <ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop/pop3d-1.00.4.linux.shadow.tar.gz>
  ‚Æ pop3d+shadow+elf.tar.gz
  <ftp://sunsite.unc.edu/pub/Linux/system/Mail/pop/pop3d+shadow+elf.tar.gz>
  ‚Å‚·B

  ‚Ç‚¿‚ç‚̏ꍇ‚à–â‘è‚È‚­ƒCƒ“ƒXƒg[ƒ‹‚Å‚«‚é‚Å‚µ‚傤B

  6.5.  xlock

  Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚µAX Window ƒVƒXƒeƒ€ã‚Å xlock ‚ðƒAƒbƒvƒO
  ƒŒ[ƒh‚µ‚È‚¢‚Ü‚Ü‚ÅŽÀs‚µ‚½ê‡‚ɂ́A CNTL-ALT-Fx ‚ŕʂ̃Rƒ“ƒ\[ƒ‹‚ɐØ
  ‘Ö‚¦‚ăƒOƒCƒ“‚µ xlock ‚̃vƒƒZƒX‚ðŽE‚·(‚ ‚é‚¢‚Í CNTL-ALT-BS ‚Å X ƒT[
  ƒo‚ðŽE‚·)ˆÈŠO‚É‚Ç‚¤‚µ‚悤‚à‚È‚¢ó‘Ô‚É‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·BK‚¢‚È‚±‚ƂɁA
  xlock ‚ðƒAƒbƒvƒOƒŒ[ƒh‚·‚é‚Ì‚Í‚Æ‚Ä‚àŠÈ’P‚Å‚·B

  ‚à‚µAXFree86 ‚̃o[ƒWƒ‡ƒ“ 3.x.x ‚ð—˜—p‚µ‚Ä‚¢‚éê‡‚ɂ́A xlockmore
  (lock ‹@”\‚ɉÁ‚¦‚ăXƒNƒŠ[ƒ“ƒZ[ƒo‹@”\‚ðŽ‚Â)‚ðŽg‚Á‚Ä‚¢‚é‚ÆŽv‚¢‚Ü‚·B
  ‚±‚̃pƒbƒP[ƒW‚͍ăRƒ“ƒpƒCƒ‹‚·‚邱‚Æ‚Å shadow ‚ðƒTƒ|[ƒg‚Å‚«‚Ü‚·BŒÃ‚¢
  xlock ‚ðŽg‚Á‚Ä‚¢‚éê‡‚É‚Í xlockmore ‚ɃAƒbƒvƒOƒŒ[ƒh‚·‚邱‚Æ‚ðŠ©‚ß‚Ü
  ‚·B

  xlockmore-3.5.tgz ‚͈ȉº‚̏ꏊ‚Å“üŽè‚Å‚«‚Ü‚·:
  <ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz>

  ƒCƒ“ƒXƒg[ƒ‹‚ÍŠî–{“I‚ɂ͈ȉº‚̂悤‚È‘€ì‚ōs‚¢‚Ü‚·:

  xlockmore-3.5.tgz ‚ð“üŽè‚µA/usr/src ‚Å“WŠJ‚µ‚Ü‚·:

       tar -xzvf xlockmore-3.7.tgz

  /usr/X11R6/lib/X11/config/linux.cf ‚ð•ÒW‚µA

       #define HasShadowPasswd    NO

       ‚̍s‚ð

       #define HasShadowPasswd    YES

  ‚̂悤‚ɕύX‚µ‚Ü‚·B

  ‚»‚µ‚āAŽÀsƒtƒ@ƒCƒ‹‚ðì¬‚µ‚Ü‚·:

       cd /usr/src/xlockmore
       xmkmf
       make depend
       make

  ƒtƒ@ƒCƒ‹‚ðˆÚ“®‚µAƒI[ƒi‚ƃp[ƒ~ƒbƒVƒ‡ƒ“‚ðÝ’肵‚Ü‚·:

       cp xlock /usr/X11R6/bin/
       cp XLock /var/X11R6/lib/app-defaults/
       chown root.shadow /usr/X11R6/bin/xlock
       chmod 2755 /usr/X11R6/bin/xlock
       chown root.shadow /etc/shadow
       chmod 640 /etc/shadow

  ‚±‚ê‚ŁA‚¤‚Ü‚­“®‚­ xlock ‚ª‚Å‚«‚½‚Í‚¸‚Å‚·B

  6.6.  xdm

  xdm‚Í X Window ‚̃ƒOƒCƒ“‰æ–Ê‚ð•\Ž¦‚·‚éƒvƒƒOƒ‰ƒ€‚Å‚·B“Á’è‚Ì run
  level ‚Ɉڍs‚µ‚½‚Æ‚«‚Éxdm‚ªŽÀs‚³‚ê‚éƒVƒXƒeƒ€‚à‚ ‚è‚Ü‚·B
  (/etc/inittabŽQÆ)
  Shadow Suite‚̃Cƒ“ƒXƒg[ƒ‹‚ðs‚È‚¤‚ƁAxdm‚àXV‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
  ‚µ‚©‚µxdm‚̃AƒbƒvƒOƒŒ[ƒh‚ÍŠÈ’P‚È‚Ì‚Å–â‘è‚ ‚è‚Ü‚¹‚ñB

  xdm.tar.gz ‚͈ȉº‚ÌURL‚Å“üŽè‚Å‚«‚Ü‚·:
  <ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz>

  xdm.tar.gz ƒtƒ@ƒCƒ‹‚ð“üŽè‚µ‚āA/usr/src‚É’u‚¢‚Ä‚©‚çˆÈ‰º‚̂悤‚É‚µ‚Ä“W
  ŠJ‚µ‚Ü‚·:

       tar -xzvf xdm.tar.gz

  /usr/X11R6/lib/X11/config/linux.cf “à‚Ì

       #define HasShadowPasswd    NO

       ‚Ì•”•ª‚ð

       #define HasShadowPasswd    YES

  ‚̂悤‚ɕύX‚µ‚Ü‚·B

  ŽÀsƒtƒ@ƒCƒ‹‚ðì‚è‚Ü‚·:

       cd /usr/src/xdm
       xmkmf
       make depend
       make

  ƒtƒ@ƒCƒ‹‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·:

       cp xdm /usr/X11R6/bin/

  xdm ‚Í root Œ ŒÀ‚Å“®ì‚·‚é‚̂Ńtƒ@ƒCƒ‹‚̃p[ƒ~ƒbƒVƒ‡ƒ“‚ð•Ï‚¦‚é•K—v‚Í‚ 
  ‚è‚Ü‚¹‚ñB

  6.7.  sudo

  sudoƒvƒƒOƒ‰ƒ€‚̓VƒXƒeƒ€ŠÇ—ŽÒ‚ª’ʏírootŒ ŒÀ‚ð•K—v‚Æ‚·‚éƒvƒƒOƒ‰ƒ€‚ðƒ†
  [ƒU‚ÉŽÀs‚³‚¹‚邽‚ß‚É—p‚¢‚Ü‚·BŠÇ—ŽÒ‚ªroot‚̃AƒJƒEƒ“ƒg‚ւ̃AƒNƒZƒX‚ð
  §ŒÀ‚µ‚½‚܂܂ŁAƒ†[ƒU‚ɃfƒBƒXƒN‚̃}ƒEƒ“ƒg“™‚Ì‘€ì‚ð‹–‰Â‚·‚é‚Æ‚«‚É•Ö—˜
  ‚ȃvƒƒOƒ‰ƒ€‚Å‚·B

  sudo ‚ÍŽÀs‚³‚ꂽŽž‚Ƀ†[ƒU‚̃pƒXƒ[ƒh”FØ‚ðs‚¤‚̂ŁAƒpƒXƒ[ƒhƒtƒ@
  ƒCƒ‹‚ð“Ç‚ß‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñBsudo ‚͍ŏ‰‚©‚çroot‚É SUID ‚³‚ê‚Ä“®ì‚·
  ‚é‚̂ŁA/etc/shadow ‚ւ̃AƒNƒZƒX‚ɂ‚¢‚Ä‚Í–â‘è‚ ‚è‚Ü‚¹‚ñB

  Shadow Suit ‘Ήž‚Ì sudo ‚͈ȉº‚ÌURL‚Å“üŽè‚Å‚«‚Ü‚·:
  <ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz>

  Œx: sudo‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éÛ‚É /etc/sudoersƒtƒ@ƒCƒ‹‚Í•W€‚Ì‚à‚Ì‚Æ’u
  ‚«Š·‚¦‚ç‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·B‚Å‚·‚©‚çA•W€‚̏ó‘Ô‚©‚ç•ÏX‚ª‚ ‚éê‡‚ɂ̓oƒb
  ƒNƒAƒbƒv‚ðŽæ‚Á‚Ä‚¨‚­•K—v‚ª‚ ‚è‚Ü‚·B(Makefile ‚ð•ÏX‚µ‚Ä•W€‚̃tƒ@ƒCƒ‹
  ‚ð/etc‚ɃRƒs[‚·‚é•”•ª‚̏ˆ—‚ðíœ‚·‚é‚Æ‚¢‚¤•û–@‚à‚ ‚è‚Ü‚·B)

  ‚±‚̃pƒbƒP[ƒW‚ÍŠù‚É shadow ‘Ήž‚̐ݒ肪‚È‚³‚ê‚Ä‚¢‚é‚̂ŁAƒpƒbƒP[ƒW‚ð
  ÄƒRƒ“ƒpƒCƒ‹‚·‚邾‚¯‚Å—˜—p‚Å‚«‚Ü‚·(ƒ\[ƒX‚Í /usr/src ‚É“WŠJ‚µ‚ĉº‚³
  ‚¢):

       cd /usr/src
       tar -xzvf sudo-1.2-shadow.tgz
       cd sudo-1.2-shadow
       make all
       make install

  6.8.  imapd (E-Mail [pine ƒpƒbƒP[ƒW])

  imapd ‚Í pop3d ‚̂悤‚ȃ[ƒ‹ƒT[ƒo‚Å‚·B imapd ‚Í pine E-mail ƒpƒbƒP
  [ƒW‚É•t‘®‚µ‚Ä‚¢‚Ü‚·BƒpƒbƒP[ƒW‚É•t‘®‚·‚éƒhƒLƒ…ƒƒ“ƒg‚É‚Í Linux ƒVƒX
  ƒeƒ€‚ɑ΂·‚é•W€Ý’è‚Å shadow ‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚é‚Ə‘‚©‚ê‚Ä‚¢‚Ü‚·B‚µ‚©
  ‚µA‚±‚ê‚͐³‚µ‚­‚È‚¢‹Lq‚Å‚·B‚³‚ç‚ɁA‚±‚̃pƒbƒP[ƒW‚Å‚ÍŽÀsƒtƒ@ƒCƒ‹¶
  ¬ƒXƒNƒŠƒvƒg‚Æ Makefile ‚Ì‘g‡‚¹‚ª•K—v‚ŁAƒRƒ“ƒpƒCƒ‹Žž‚Élibshadow.a‚ð
  ‰Á‚¦‚邱‚Æ‚ª‚ª“‚¢‚Ì‚Å‚·B‚»‚¤‚¢‚¤‚킯‚ŁAŽ„‚Í‚Ü‚¾ imapd ‚ª shadow
  ƒTƒ|[ƒg‚·‚é‚悤‚É‚Í‚Å‚«‚Ä‚¢‚Ü‚¹‚ñB

  ‚à‚µ¬Œ÷‚µ‚½l‚ª‚¢‚Ü‚µ‚½‚çA•MŽÒ‚Ì‚Æ‚±‚ë‚Ƀ[ƒ‹‚Å’m‚点‚Ä‚­‚¾‚³‚¢B‚±
  ‚̍€–ڂɉÁ‚¦‚½‚¢‚ÆŽv‚¢‚Ü‚·B

  6.9.  pppd (PPP ƒvƒƒgƒRƒ‹ƒT[ƒo)

  pppd ƒT[ƒo‚Í”FØ‚Ì•ûŽ®‚𕡐”—˜—p‚Å‚«‚é‚悤‚ɐݒè‚Å‚«‚Ü‚·B Password
  Authentication Protocol (PAP) ‚Æ Cryptographic Handshake
  Authentication Protocol (CHAP)‚Å‚·Bpppd ƒT[ƒo‚Í•’ʃpƒXƒ[ƒh•¶Žš—ñ
  ‚ð /etc/ppp/chap-secrets ‚© /etc/ppp/pap-secrets (‚ ‚é‚¢‚Í—¼•û)‚©‚瓾
  ‚Ü‚·Bpppd ‚É•W€‚Ì“®ì‚ð‚³‚¹‚Ä‚¢‚éê‡‚É‚Í pppd ‚ðÄƒCƒ“ƒXƒg[ƒ‹‚·‚é
  •K—v‚Í‚ ‚è‚Ü‚¹‚ñB

  pppd ‚Íloginƒpƒ‰ƒ[ƒ^‚ðŽg‚¤‚悤‚É‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·(ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“
  ‚©AÝ’èƒtƒ@ƒCƒ‹‚ÅŽw’è‚·‚é‚© options ƒtƒ@ƒCƒ‹“à‚ÅŽw’è)B‚à‚µlogin ƒIƒv
  ƒVƒ‡ƒ“‚ªŽw’肳‚ê‚é‚Æ pppd ‚Í PAP ‚Å /etc/passwd ƒtƒ@ƒCƒ‹‚̃†[ƒUƒl[ƒ€
  ‚ƃpƒXƒ[ƒh‚ðŽg‚¢‚Ü‚·BƒpƒXƒ[ƒh‚ð shadow ‰»‚·‚é‚Æ‚à‚¿‚ë‚ñA‚±‚ê‚Í“®
  ì‚µ‚È‚­‚È‚è‚Ü‚·B pppd-1.2.1d ‚Å‚Í shadow ‚ðƒTƒ|[ƒg‚·‚邽‚߂ɂ̓vƒ
  ƒOƒ‰ƒ€‚ð•ÏX‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

  ŽŸ‚̏͂ł̗á‘è‚Í pppd-1.2.1d(ƒo[ƒWƒ‡ƒ“‚ªŒÃ‚¢ pppd)‚É shadow ƒTƒ|[ƒg
  ‚ð‰Á‚¦‚é‚Æ‚¢‚¤‚à‚Ì‚Å‚·B

  pppd-2.2.0 ‚Å‚ÍŠù‚É shadow ‘Ήž‚ªs‚í‚ê‚Ä‚¢‚Ü‚·B

  7.  Shadow Suite ‚ðŽg‚Á‚Ä‚Ý‚é

  ‚±‚̏͂ł̓VƒXƒeƒ€‚ÉShadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½Œã‚É’m‚Á‚Ä‚¨‚­‚ׂ«‚¾
  ‚ÆŽv‚í‚ê‚邱‚Æ‚ðà–¾‚µ‚Ü‚·B‚æ‚èÚ‚µ‚¢à–¾‚ÍŠeƒRƒ}ƒ“ƒh‚̃Iƒ“ƒ‰ƒCƒ“ƒ}
  ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B

  7.1.  ƒ†[ƒU‚̒ljÁA•ÏXAíœ

  Shadow Suite ‚ɂ̓†[ƒU‚ð’ljÁA•ÏXAíœ‚·‚邽‚߂̃vƒƒOƒ‰ƒ€‚ªŠÜ‚Ü‚ê
  ‚Ä‚¢‚Ü‚·BŠù‚ÉadduserƒvƒƒOƒ‰ƒ€‚àŽ‚Á‚Ä‚¢‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB

  7.1.1.  useradd

  useraddƒRƒ}ƒ“ƒh‚̓VƒXƒeƒ€‚Ƀ†[ƒU‚ð’ljÁ‚·‚邽‚ß‚É—p‚¢‚Ü‚·B•W€‚̐ݒè
  ‚ð•Ï‚¦‚é‚Æ‚«‚É‚à‚±‚̃Rƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·B

  Å‰‚ɍs‚È‚¤‚ׂ«‚±‚Æ‚Í•W€Ý’è‚ðŠm”F‚µ‚Ä‚ ‚È‚½‚̃VƒXƒeƒ€‚ɍ‡‚킹‚ĕύX
  ‚ð‰Á‚¦‚邱‚Æ‚Å‚·:

       useradd -D

  ______________________________________________________________________
  GROUP=1
  HOME=/home
  INACTIVE=0
  EXPIRE=0
  SHELL=
  SKEL=/etc/skel
  ______________________________________________________________________

  •W€Ý’è‚Í‚¨‚»‚ç‚­‹C‚É“ü‚ç‚È‚¢‚Å‚µ‚傤‚©‚çAƒ†[ƒU‚ð‰Á‚¦‚é‚Æ‚«‚ÉŠeƒ†[
  ƒU‚ɑ΂µ‚Ä‘S‚Ă̍€–Ú‚ð‚¢‚¿‚¢‚¿Žw’è‚·‚é‚æ‚è‚àA•W€‚̐ݒè‚ð•Ï‚¦‚Ä‚µ‚Ü‚¢
  ‚Ü‚µ‚傤B

  •MŽÒ‚̃VƒXƒeƒ€‚ł͈ȉº‚̂悤‚Ȑݒè‚É•Ï‚¦‚Ä‚¢‚Ü‚·:

  o  •W€‚̃Oƒ‹[ƒv ID ‚ð 100 ‚É

  o  ƒpƒXƒ[ƒh‚ÌŠúŒÀ‚ð 60 “ú‚É

  o  ƒpƒXƒ[ƒh‚ÌŠúŒÀØ‚ê‚É‚æ‚éƒAƒJƒEƒ“ƒg‚̃ƒbƒN‚͍s‚È‚í‚È‚¢

  o  •W€‚̃VƒFƒ‹‚ð/bin/bash ‚É

     ‚±‚̂悤‚ȕύX‚ðs‚È‚¤‚É‚ÍŽŸ‚̃Rƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·:
       useradd -D -g100 -e60 -f0 -s/bin/bash

  ‚±‚̏ó‘Ô‚Å useradd -D ‚ðŽÀs‚·‚é‚ƈȉº‚ÌŒ‹‰Ê‚𓾂܂·:

  ______________________________________________________________________
  GROUP=100
  HOME=/home
  INACTIVE=0
  EXPIRE=60
  SHELL=/bin/bash
  SKEL=/etc/skel
  ______________________________________________________________________

  ‚à‚µ’m‚肽‚¯‚ê‚΁A‚±‚ê‚ç‚Ì•W€Ý’è‚Í/etc/default/useradd ƒtƒ@ƒCƒ‹‚ÅŠm
  ”F‚Å‚«‚Ü‚·B

  ‚±‚ê‚ц[ƒU‚̒ljÁ‚É useradd ‚ðŽg‚¦‚é‚悤‚É‚È‚è‚Ü‚µ‚½B—Ⴆ‚΁A•W€‚Ì
  Ý’è‚ðŽg‚Á‚ㆁ[ƒU fred ‚ð’ljÁ‚·‚邽‚߂ɂ͈ȉº‚̂悤‚È‘€ì‚ðs‚È‚¢‚Ü
  ‚·:

       useradd -m -c "Fred Flintstone" fred

  ‚±‚̃Rƒ}ƒ“ƒh‚Í/etc/passwd ƒtƒ@ƒCƒ‹“à‚Ɉȉº‚̂悤‚ȃGƒ“ƒgƒŠ[‚ðì‚è‚Ü
  ‚·:

       fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash

  ‚Ü‚½A/etc/shadowƒtƒ@ƒCƒ‹“à‚Ɉȉº‚̃Gƒ“ƒgƒŠ[‚ðì‚è‚Ü‚·:

       fred:!:0:0:60:0:0:0:0

  -mƒIƒvƒVƒ‡ƒ“‚ª‚‚¢‚Ä‚¢‚é‚̂ŁAƒ†[ƒUfred ‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚à¶¬‚³
  ‚êA/etc/skelƒfƒBƒŒƒNƒgƒŠ‚Ì“à—e‚ªƒRƒs[‚³‚ê‚Ü‚·B

  UID ‚ÍŽw’肵‚Ä‚¢‚È‚­‚Ä‚à“K“–‚ÉŒˆ‚ß‚Ä‚­‚ê‚Ü‚·B

  ‚±‚ê‚Åfred‚̃AƒJƒEƒ“ƒg‚ª‚Å‚«‚Ü‚µ‚½‚ªAƒAƒJƒEƒ“ƒg‚̃ƒbƒN‚ð‰ðœ‚µ‚È‚¢ŒÀ
  ‚èfred‚̓ƒOƒCƒ“‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBƒƒbƒN‚Ì‰ðœ‚ÍƒpƒXƒ[ƒh‚ð•Ï‚¦‚é
  ‚±‚Æ‚É‚æ‚Á‚čs‚È‚¢‚Ü‚·B

       passwd fred

  ______________________________________________________________________
  Changing password for fred
  Enter the new password (minimum of 5 characters)
  Please use a combination of upper and lower case letters and numbers.
  New Password: *******
  Re-enter new password: *******
  ______________________________________________________________________

  ‚±‚ê‚Å /etc/shadow‚͈ȉº‚̂悤‚È“à—e‚É‚È‚è‚Ü‚·:

       fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0

  ‚»‚µ‚āAfred‚̓VƒXƒeƒ€‚ɃƒOƒCƒ“‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B‘¼‚̃vƒƒOƒ‰ƒ€‚Å
  ‚È‚­ useradd ‚ðŽg‚¤—˜“_‚Í/etc/passwd ‚Æ/etc/shadow‚̕ύX‚ª•s‰Â•ª‚ɍs‚È
  ‚í‚ê‚邱‚Æ‚Å‚·B‚‚܂èA‚ ‚È‚½‚ªƒ†[ƒU‚ð“o˜^‚·‚é‚Ì‚Æ“¯Žž‚É‘¼‚̃†[ƒU‚ª
  ƒpƒXƒ[ƒh‚ð•ÏX‚µ‚½‚Æ‚µ‚Ä‚àA—¼•û‚Æ‚à³‚µ‚­ŽÀs‚³‚ê‚Ü‚·B

  ’¼Ú /etc/passwd ‚â /etc/shadow ‚ð•ÒW‚·‚é‚Ì‚Í‚â‚߂āA—pˆÓ‚³‚ꂽƒRƒ}ƒ“
  ƒh‚ð—˜—p‚·‚é‚ׂ«‚Å‚·B‚ ‚È‚½‚ª /etc/passwd ‚ð•ÒW‚µ‚Ä‚¢‚éŠÔ‚ɁA‚ ‚郆
  [ƒU‚ªƒpƒXƒ[ƒh‚ð•ÏX‚µ‚½‚Æ‚·‚é‚ƁA‚»‚̃†[ƒU‚̃pƒXƒ[ƒh•ÏX‚Í‚ ‚È‚½
  ‚ªƒtƒ@ƒCƒ‹‚ðƒZ[ƒu‚µ‚½Žž‚ÉŽ¸‚í‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·B

  ˆÈ‰º‚ÉŽ¦‚·‚Ì‚Íuseradd‚Æpasswd‚ðŽg‚Á‚½ŠÈ’P‚ȑΘb“Iƒ†[ƒU’ljÁƒXƒNƒŠƒvƒg
  ‚Å‚·B

  ______________________________________________________________________
  #!/bin/bash
  #
  # /sbin/newuser - A script to add users to the system using the Shadow
  #                 Suite's useradd and passwd commands.
  #
  # Written my Mike Jackson <mhjack@tscnet.com> as an example for the Linux
  # Shadow Password Howto.  Permission to use and modify is expressly granted.
  #
  # This could be modified to show the defaults and allow modification similar
  # to the Slackware Adduser program.  It could also be modified to disallow
  # stupid entries.  (i.e. better error checking).
  #
  ##
  #  Defaults for the useradd command
  ##
  GROUP=100        # Default Group
  HOME=/home       # Home directory location (/home/username)
  SKEL=/etc/skel   # Skeleton Directory
  INACTIVE=0       # Days after password expires to disable account (0=never)
  EXPIRE=60        # Days that a passwords lasts
  SHELL=/bin/bash  # Default Shell (full path)
  ##
  #  Defaults for the passwd command
  ##
  PASSMIN=0        # Days between password changes
  PASSWARN=14      # Days before password expires that a warning is given
  ##
  #  Ensure that root is running the script.
  ##
  WHOAMI=`/usr/bin/whoami`
  if [ $WHOAMI != "root" ]; then
          echo "You must be root to add news users!"
          exit 1
  fi
  ##
  #  Ask for username and fullname.
  ##
  echo ""
  echo -n "Username: "
  read USERNAME
  echo -n "Full name: "
  read FULLNAME
  #
  echo "Adding user: $USERNAME."
  #
  # Note that the "" around $FULLNAME is required because this field is
  # almost always going to contain at least on space, and without the "'s
  # the useradd command would think that you we moving on to the next
  # parameter when it reached the SPACE character.
  #
  /usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \
          -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME
  ##
  #  Set password defaults
  ##
  /bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1
  ##
  #  Let the passwd command actually ask for password (twice)
  ##
  /bin/passwd $USERNAME
  ##
  #  Show what was done.
  ##
  echo ""
  echo "Entry from /etc/passwd:"
  echo -n "   "
  grep "$USERNAME:" /etc/passwd
  echo "Entry from /etc/shadow:"
  echo -n "   "
  grep "$USERNAME:" /etc/shadow
  echo "Summary output of the passwd command:"
  echo -n "   "
  passwd -S $USERNAME
  echo ""
  ______________________________________________________________________

  ƒ†[ƒU‚̒ljÁ‚ɃXƒNƒŠƒvƒg‚ð—˜—p‚·‚邱‚Æ‚Í’¼Ú/etc/passwd‚â
  /etc/shadow‚ð•ÒW‚µ‚½‚èASlackware ‚Ì adduserƒvƒƒOƒ‰ƒ€‚ð—˜—p‚·‚é‚æ‚è
  ‚à–]‚Ü‚µ‚¢‚Å‚·B‚±‚̃XƒNƒŠƒvƒg‚ð‚ ‚È‚½‚̃VƒXƒeƒ€‚ɍ‡‚킹‚ĕύX‚µ‚ÄŽg‚Á
  ‚Ä‚­‚¾‚³‚¢B

  useradd‚ɂ‚¢‚Ä‚Ì‚æ‚èÚ‚µ‚¢à–¾‚̓Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³
  ‚¢B

  7.1.2.  usermod

  usermodƒvƒƒOƒ‰ƒ€‚̓†[ƒU‚ɂ‚¢‚Ă̏î•ñ‚ð•ÏX‚·‚邽‚ß‚Ì‚à‚Ì‚Å‚·BƒIƒv
  ƒVƒ‡ƒ“‚Íuseradd‚Æ‚Ù‚Æ‚ñ‚Ç“¯‚¶‚Å‚·B

  fred‚̃VƒFƒ‹‚ð•Ï‚¦‚悤‚ÆŽv‚Á‚½‚çAˆÈ‰º‚̂悤‚È‘€ì‚ð‚µ‚Ü‚·:

       usermod -s /bin/tcsh fred

  ‚±‚ê‚É‚æ‚Á‚āA/etc/passwd‚Ìfred‚̃Gƒ“ƒgƒŠ[‚ÍŽŸ‚̂悤‚ɕύX‚³‚ê‚Ü‚·:

       fred:*:505:100:Fred Flintstone:/home/fred:/bin/tcsh

  ŽŸ‚ɁAfred‚̃AƒJƒEƒ“ƒg‚ÌŠúŒÀ‚ð 1997”N9ŒŽ15“ú‚ɐݒ肵‚Ä‚Ý‚Ü‚µ‚傤:

       usermod -e 09/15/97 fred

  ‚±‚ê‚Å/etc/shadow‚Ìfred‚̃Gƒ“ƒgƒŠ[‚ÍŽŸ‚̂悤‚ɕύX‚³‚ê‚Ü‚·:

       fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0

  usermod‚ɂ‚¢‚Ä‚Ì‚æ‚èÚ‚µ‚¢à–¾‚̓Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³
  ‚¢B
  7.1.3.  userdel

  userdel‚Í–¼‘O‚Ì’Ê‚èAƒ†[ƒU‚̃AƒJƒEƒ“ƒg‚𖕏Á‚µ‚Ü‚·BŽg‚¢•û‚Í’P‚É

       userdel -r username

  ‚Æ“ü—Í‚·‚邾‚¯‚Å‚·B -rƒIƒvƒVƒ‡ƒ“‚ð‚‚¯‚é‚ƃ†[ƒU‚̃z[ƒ€ƒfƒBƒŒƒNƒgƒŠ
  ‚ð(ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚»‚Ì‚à‚Ì‚àŠÜ‚ß‚Ä)Á‹Ž‚µ‚Ü‚·BˆÙ‚È‚éƒtƒ@ƒCƒ‹ƒVƒXƒe
  ƒ€ã‚É‚ ‚éƒtƒ@ƒCƒ‹‚ÍŽèì‹Æ‚ŏÁ‹Ž‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

  ƒAƒJƒEƒ“ƒg‚ðÁ‚·‚Ì‚Å‚Í‚È‚­A’P‚ɃƒbƒN‚·‚邾‚¯‚̏ꍇ‚É‚Í passwdƒRƒ}ƒ“
  ƒh‚ðŽg‚¢‚Ü‚·B

  7.2.  passwd ƒRƒ}ƒ“ƒh‚ƃpƒXƒ[ƒh‚ÌŠúŒÀÝ’è

  passwdƒRƒ}ƒ“ƒh‚Í•’ʂ̃pƒXƒ[ƒh•ÏX‚Ì‹@”\‚ðŽ‚Á‚Ä‚¢‚Ü‚·B‚±‚ê‚ɉÁ‚¦
  ‚āAƒ†[ƒUroot‚ÅŽÀs‚µ‚½ê‡‚ɂ́AˆÈ‰º‚Ì‚±‚Æ‚ª‚Å‚«‚Ü‚·B

  o  ƒAƒJƒEƒ“ƒg‚̃ƒbƒN‹y‚Ñ‚»‚Ì‰ðœ (-l ‚Æ -u)

  o  ƒpƒXƒ[ƒh‚̍ŒZ—LŒøŠúŠÔ‚̐ݒè (-x)

  o  ƒpƒXƒ[ƒh•ÏX‚܂ł̍ŒZ“ú”‚̐ݒè(-n)

  o  ŠúŒÀ‚̐؂ê‚éƒpƒXƒ[ƒh‚ɑ΂µ‚ĉ½“ú‘O‚©‚çŒx‚·‚é‚©‚̐ݒè (-w)

  o  ƒpƒXƒ[ƒh‚ÌŠúŒÀØ‚ê‚©‚çƒAƒJƒEƒ“ƒg‚̃ƒbƒN‚Ü‚Å‚Ì“ú”‚̐ݒè is
     locked (-i)

  o  ƒAƒJƒEƒ“ƒgî•ñ‚𐴏‘‚µ‚Ä•\Ž¦(-S)

  —á‚Æ‚µ‚āAÄ‚у†[ƒUfred‚ðŒ©‚Ä‚Ý‚Ü‚µ‚傤B

       passwd -S fred
       fred P 03/04/96 0 60 0 0

  ‚±‚ê‚́Afred‚̃pƒXƒ[ƒh‚Í—LŒø‚Å‚ ‚邱‚ƁA‘O‰ñ‚̕ύX‚Í1996”N3 ŒŽ4“ú‚Å
  ‚ ‚Á‚½‚±‚ƁA‚¢‚‚łà•ÏX‰Â”\‚Å‚ ‚邱‚ƁA60“úŒã‚ÉŠúŒÀØ‚ê‚ɂȂ邱
  ‚ƁAfred ‚É‚ÍŒx‚Í‚È‚³‚ê‚È‚¢‚±‚ƁAƒpƒXƒ[ƒh‚ªŠúŒÀØ‚ê‚É‚È‚Á‚Ä‚àƒAƒJ
  ƒEƒ“ƒg‚Í–³Œø‚Æ‚È‚ç‚È‚¢‚±‚Æ‚ðˆÓ–¡‚µ‚Ä‚¢‚Ü‚·B

  ‚±‚ê‚́AƒpƒXƒ[ƒh‚ªŠúŒÀØ‚ê‚É‚È‚Á‚Ä‚©‚çfred‚ªƒƒOƒCƒ“‚·‚é‚ƐV‚µ‚¢ƒpƒX
  ƒ[ƒh‚ð—v‹‚·‚éƒvƒƒ“ƒvƒg‚ªo‚Ä‚­‚é‚Æ‚¢‚¤‚±‚Æ‚Å‚·B

  ‚à‚µAfred‚̃pƒXƒ[ƒh‚ªŠúŒÀØ‚ê‚É‚È‚é14“ú‘O‚ÉŒx‚ðo‚µAŠúŒÀØ‚ê
  ‚Ì14“úŒã‚ɂ̓AƒJƒEƒ“ƒg‚ª’âŽ~‚Æ‚È‚é‚悤‚É‚·‚邽‚ß‚É‚ÍŽŸ‚̂悤‚È–½—ß‚ð—^
  ‚¦‚Ü‚·B

       passwd -w14 -i14 fred

  ‚±‚Ì‚Æ‚«Afred‚̏î•ñ‚ÍŽŸ‚̂悤‚É‚È‚è‚Ü‚·B

       fred P 03/04/96 0 60 14 14

  Ú×‚ɂ‚¢‚Ä‚Ípasswd‚̃Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B

  7.3.  login.defs ƒtƒ@ƒCƒ‹

  /etc/loginƒtƒ@ƒCƒ‹‚ÍloginƒvƒƒOƒ‰ƒ€‚ÆShadow Suite‘S‘̂̐ݒèƒtƒ@ƒCƒ‹‚Å
  ‚·B

  /etc/login ƒtƒ@ƒCƒ‹‚̓vƒƒ“ƒvƒg•\Ž¦‚©‚çAƒ†[ƒU‚ªƒpƒXƒ[ƒh•ÏX‚ð‚µ‚½
  Žž‚É•W€‚̃pƒXƒ[ƒhŠúŒÀ‚Í‚Ç‚¤‚È‚é‚©‚Ü‚Å‚Ì•L‚¢Ý’è‚ðŽ‚Á‚Ä‚¢‚Ü‚·B

  /etc/login.defs “à‚ɏڂµ‚¢ƒRƒƒ“ƒg‚ª‚ ‚è‚Ü‚·‚ªA‚¢‚­‚‚©’ˆÓ‚·‚ׂ«“_‚ª
  ‚ ‚è‚Ü‚·B

  o  ”­¶‚µ‚½ƒƒMƒ“ƒO‚Ì—Ê‚ðŒˆ’è‚·‚éƒtƒ‰ƒO(on ‚ ‚é‚¢‚Í off ‚É‚Å‚«‚é)‚ðŠÜ
     ‚Þ

  o  ‘¼‚̐ݒèƒtƒ@ƒCƒ‹‚ւ̃|ƒCƒ“ƒ^‚ðŠÜ‚Þ

  o  ƒpƒXƒ[ƒh‚Ì aging ‚Ȃǂɂ‚¢‚Ä‚Ì•W€‚̐ݒè‚ðŠÜ‚Þ

  ‚±‚ê‚ç‚Ì‚±‚Æ‚©‚çd—v‚ȃtƒ@ƒCƒ‹‚Å‚ ‚邱‚Æ‚ª‚í‚©‚é‚ÆŽv‚¢‚Ü‚·B‚Å‚·‚©‚çA
  ƒtƒ@ƒCƒ‹‚ª‚»‚Ì‚à‚Ì‚ª‘¶Ý‚·‚邱‚ƂƐ³‚µ‚¢Ý’è‚É‚È‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ð•K‚¸
  Šm”F‚µ‚Ä‚­‚¾‚³‚¢B

  7.4.  ƒOƒ‹[ƒv‚̃pƒXƒ[ƒh

  /etc/groupsƒtƒ@ƒCƒ‹‚Í“Á’è‚̃Oƒ‹[ƒv‚̃ƒ“ƒo‚ɂȂ邽‚߂̃pƒXƒ[ƒh‚ðŠÜ
  ‚Þ‚±‚Æ‚ª‚ ‚è‚Ü‚·B‚±‚Ì‹@”\‚̓Rƒ“ƒpƒCƒ‹Žž‚É /usr/src/shadow-
  YYMMDD/config.h ƒtƒ@ƒCƒ‹“à‚Œ萔SHADOWGRP ‚ð’è‹`‚µ‚Ä‚¢‚ê‚ΗLŒø‚É‚È‚Á‚Ä
  ‚¢‚Ü‚·B

  ‚±‚̒萔‚ð’è‹`‚µ‚ăRƒ“ƒpƒCƒ‹‚ðs‚È‚Á‚½‚È‚ç‚΁A/etc/gshadowƒtƒ@ƒCƒ‹‚ðì
  ‚èAƒOƒ‹[ƒv‚̃pƒXƒ[ƒh‹y‚уOƒ‹[ƒvŠÇ—ŽÒ‚ɂ‚¢‚Ă̏î•ñ‚ð•ÛŽ‚³‚¹‚È‚¯
  ‚ê‚΂Ȃè‚Ü‚¹‚ñB

  /etc/shadow ƒtƒ@ƒCƒ‹‚ðì‚Á‚½Žž‚É‚Í pwconv‚ƌĂ΂ê‚éƒvƒƒOƒ‰ƒ€‚ðŽg‚¢‚Ü
  ‚µ‚½‚ªA/etc/gshadow‚ɑ΂µ‚Ä‚Í‚±‚ê‚É‘Š“–‚·‚é‚à‚Ì‚Í‚ ‚è‚Ü‚¹‚ñB‚µ‚©‚µA
  ‚±‚̃tƒ@ƒCƒ‹‚Í“Á‚ɕҏW‚·‚é•K—v‚Í‚È‚¢‚Ì‚Å–â‘è‚É‚Í‚È‚è‚Ü‚¹‚ñB

  Å‰‚É /etc/gshadow ƒtƒ@ƒCƒ‹‚ðì‚邽‚߂ɂ͈ȉº‚Ì‘€ì‚ðs‚È‚¢‚Ü‚·B

       touch /etc/gshadow
       chown root.root /etc/gshadow
       chmod 700 /etc/gshadow

  V‚µ‚¢ƒOƒ‹[ƒv‚ðì‚é‚ÆŽ©“®“I‚É/etc/group‹y‚Ñ /etc/gshadowƒtƒ@ƒCƒ‹‚É’Ç
  ‰Á‚³‚ê‚Ü‚·Bƒ†[ƒU‚̒ljÁ‚âíœAƒOƒ‹[ƒv‚̃pƒXƒ[ƒh‚̕ύX‚Ȃǂ̏C³‚ª
  s‚È‚í‚ꂽê‡‚É‚Í /etc/gshadowƒtƒ@ƒCƒ‹‚à•ÏX‚³‚ê‚Ü‚·B

  Shadow Suite ‚ÉŠÜ‚Ü‚ê‚éƒOƒ‹[ƒv‚ð•ÏX‚·‚邽‚߂̃vƒƒOƒ‰ƒ€‚Æ‚µ‚Ägroups,
  groupadd, groupmod, groupdel‚ª‚ ‚è‚Ü‚·B

  /etc/group ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg‚ÍŽŸ‚̂悤‚É‚È‚Á‚Ä‚¢‚Ü‚·B

       groupname:!:GID:member,member,...

  ŠeƒtƒB[ƒ‹ƒh‚Ì“à—e‚ÍŽŸ‚̂悤‚É‚È‚Á‚Ä‚¢‚Ü‚·:

     groupname
        ƒOƒ‹[ƒv–¼

     !  ’ʏí‚̓pƒXƒ[ƒh‚ð•ÛŽ‚·‚éƒtƒB[ƒ‹ƒh‚Å‚ ‚邪A Shadow Suite ‚Å‚Í
        ƒpƒXƒ[ƒh‚Í/etc/gshadow ƒtƒ@ƒCƒ‹‚ÉŠi”[‚³‚ê‚é

     GID
        ƒOƒ‹[ƒvID(”’l)

     member
        ƒOƒ‹[ƒv‚̃ƒ“ƒo‚̃ŠƒXƒg

  /etc/gshadow ƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg‚ÍŽŸ‚̂悤‚É‚È‚è‚Ü‚·B

       groupname:password:admin,admin,...:member,member,...

  ŠeƒtƒB[ƒ‹ƒh‚Ì“à—e‚͈͂ȉº‚̂悤‚É‚È‚Á‚Ä‚¢‚Ü‚·:

     groupname
        ƒOƒ‹[ƒv‚Ì–¼‘O

     password
        ƒGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh

     admin
        ƒOƒ‹[ƒv‚ÌŠÇ—ŽÒ‚̃ŠƒXƒg

     member
        ƒOƒ‹[ƒv‚̃ƒ“ƒo‚̃ŠƒXƒg

  gpasswdƒRƒ}ƒ“ƒh‚̓Oƒ‹[ƒv‚ɑ΂µ‚ÄŠÇ—ŽÒ‚⃆[ƒU‚̒ljÁ‹y‚э폜‚ðs‚È‚¤
  Žž‚É‚¾‚¯Žg‚¢‚Ü‚·Broot‚âƒOƒ‹[ƒv‚ÌŠÇ—ŽÒƒŠƒXƒg‚É“ü‚Á‚Ä‚¢‚郆[ƒU‚̓Oƒ‹
  [ƒv‚̃ƒ“ƒo‚̒ljÁ‚âíœ‚ðs‚È‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B

  ƒOƒ‹[ƒv‚̃pƒXƒ[ƒh‚Í root ‚©ƒOƒ‹[ƒv‚ÌŠÇ—ŽÒƒŠƒXƒg‚É“ü‚Á‚Ä‚¢‚郆[ƒU
  ‚ªpasswdƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚邱‚ƂŕύX‚Å‚«‚Ü‚·B

  Œ»Ý‚Ì‚Æ‚±‚ëAgpasswdƒRƒ}ƒ“ƒh‚̃Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚Í‚ ‚è‚Ü‚¹‚ñ‚ªAƒp
  ƒ‰ƒ[ƒ^‚È‚µ‚Ägpasswd‚ðŽÀs‚·‚邱‚ƂŃIƒvƒVƒ‡ƒ“ˆê——‚ðŠm”F‚·‚邱‚Æ‚ª‚Å
  ‚«‚Ü‚·Bƒtƒ@ƒCƒ‹‚̃tƒH[ƒ}ƒbƒg‚ƈӖ¡‚ð—‰ð‚µ‚Ä‚¢‚ê‚΃Rƒ}ƒ“ƒh‚ª‚ǂ̂悤
  ‚É“®ì‚·‚é‚Ì‚©‚ð”cˆ¬‚·‚邱‚Æ‚ÍŠÈ’P‚Å‚·B

  7.5.  ˆêŠÑ«‚ðƒ`ƒFƒbƒN‚·‚éƒvƒƒOƒ‰ƒ€

  7.5.1.  pwck

  ƒvƒƒOƒ‰ƒ€pwck‚Í/etc/passwd‚Æ/etc/shadow ‚Ì“à—e‚ɈêŠÑ«‚ª‚ ‚é‚©‚Ç‚¤‚©
  ‚𒲂ׂ邽‚ß‚Ì‚à‚Ì‚Å‚·B‚±‚̃vƒƒOƒ‰ƒ€‚Í‚»‚ꂼ‚ê‚̃†[ƒU–¼‚ɂ‚¢‚Ĉȉº
  ‚̍€–ڂ𒲂ׂ܂·:

  o  ƒtƒB[ƒ‹ƒh‚̐”‚ª³‚µ‚¢‚©

  o  “¯‚¶–¼‘O‚̃†[ƒU–¼‚ª‚¢‚È‚¢‚©

  o  ƒ†[ƒUIDAƒOƒ‹[ƒvID‚ª³‚µ‚¢‚©

  o  primary ƒOƒ‹[ƒv‚ª³‚µ‚¢‚©

  o  ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚ª³‚µ‚¢‚©

  o  ƒƒOƒCƒ“ƒVƒFƒ‹‚ª³‚µ‚¢‚©

  ‚Ü‚½AƒpƒXƒ[ƒh–³‚µ‚̃AƒJƒEƒ“ƒg‚ª‚ ‚ê‚ÎŒx‚µ‚Ü‚·B

  Shadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½‚çApwck‚ðŽÀs‚·‚é‚Æ‚¢‚¤‚Ì‚Í—Ç‚¢l‚¦‚Å
  ‚·B’èŠú“I(‚½‚Æ‚¦‚ΖˆŒŽA–ˆT)‚ÉŽÀs‚·‚é‚Ì‚à‚¢‚¢‚Å‚µ‚傤B-rƒIƒvƒVƒ‡ƒ“
  ‚ðŽg‚¦‚΁Acron‚ðŽg‚Á‚Ä’èŠú“I‚ÉŽÀs‚³‚¹AŒ‹‰Ê‚ðƒ[ƒ‹‚Å•ñ‚³‚¹‚邱‚Æ‚ª
  ‚Å‚«‚Ü‚·B

  7.5.2.  grpck

  grpck ‚Í/etc/group ‚Æ /etc/gshadow ‚̈êŠÑ«‚ðŠm”F‚·‚éƒvƒƒOƒ‰ƒ€‚Å‚·B
  ‚±‚̃vƒƒOƒ‰ƒ€‚͈ȉº‚̃`ƒFƒbƒN‚ðs‚È‚¢‚Ü‚·:

  o  ƒtƒB[ƒ‹ƒh‚̐”‚ª³‚µ‚¢‚©

  o  ƒOƒ‹[ƒv–¼‚̏d•¡‚ª‚È‚¢‚©

  o  ƒƒ“ƒo[‚ÆŠÇ—ŽÒ‚̃ŠƒXƒg‚ª³‚µ‚¢‚©

  pwckƒRƒ}ƒ“ƒh“¯—l‚ɁA-r ƒIƒvƒVƒ‡ƒ“‚ðŽg‚Á‚ÄŽ©“®“I‚ÉŒ‹‰Ê•ñ‚ð‚³‚¹‚邱‚Æ
  ‚ª‚Å‚«‚Ü‚·B

  7.6.  ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh

  ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh‚̓_ƒCƒAƒ‹ƒCƒ“‚̃AƒNƒZƒX‚ð‹–‰Â‚µ‚Ä‚¢‚éƒVƒXƒe
  ƒ€‚́A’ʏí‚̃pƒXƒ[ƒh”FØ‚Æ‚Í•Ê‚Ì–h‰qü‚Å‚·Bƒ[ƒJƒ‹‚ ‚é‚¢‚̓lƒbƒgƒ
  [ƒNŒo—R‚Őڑ±‚Å‚«‚郆[ƒU‚Í‘½‚­‚¢‚邯‚ê‚ǃ_ƒCƒAƒ‹ƒCƒ“‚Őڑ±‚Å‚«‚郆[
  ƒU‚͐§ŒÀ‚µ‚½‚¢ê‡‚ɂ́Aƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh‚ª–ð‚É—§‚¿‚Ü‚·Bƒ_ƒC
  ƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh‚ð—LŒø‚É‚·‚é‚ɂ́A/etc/login.defs‚ð•ÒW‚µA
  DIALUPS_CHECK_ENAB ‚ð yes ‚É‚µ‚Ü‚·B

  ƒ_ƒCƒAƒ‹ƒAƒbƒv‚ɂ‚¢‚Ă̐ݒè‚Í2‚‚̃tƒ@ƒCƒ‹‚ōs‚¢‚Ü‚·Bˆê‚‚Í
  /etc/dialups‚ŁAtty ‚̐ݒè‚ð‹Lq‚µ‚Ü‚·B(‰ñüˆê‚‚ɑ΂µ‚Ĉês‘‚«Aƒf
  ƒoƒCƒX–¼‚̍ŏ‰‚Ì"/dev/"‚ðŽæ‚菜‚¢‚½‚à‚Ì‚ð‹Lq‚µ‚Ü‚·B) tty ‚ª‘‚©‚ê‚Ä
  ‚¢‚ê‚΁Aƒ_ƒCƒAƒ‹ƒAƒbƒv‚̐ڑ±‚ɑ΂·‚éƒ`ƒFƒbƒN‚ªs‚í‚ê‚Ü‚·B

  ‚à‚¤ˆê‚‚̃tƒ@ƒCƒ‹‚Í /etc/d_passwd ‚Å‚·B‚±‚̃tƒ@ƒCƒ‹‚É‚Í“KØ‚ȃVƒFƒ‹
  ‚̃pƒX–¼‚ƒljÁ‚̃pƒXƒ[ƒh‚ð‹Lq‚µ‚Ü‚·B

  ‚à‚µA/etc/dialups‚ɏ‘‚©‚ê‚Ä‚¢‚é‰ñü‚©‚烆[ƒU‚ªƒƒOƒCƒ“‚µA
  /etc/d_passwd ‚É‚±‚̃†[ƒU‚̃ƒOƒCƒ“ƒVƒFƒ‹‚ª‘‚©‚ê‚Ä‚¢‚é‚È‚ç‚΁A³‚µ‚¢
  ƒpƒXƒ[ƒh‚ð“ü—Í‚·‚邱‚ƂŃAƒNƒZƒX‹–‰Â‚𓾂邱‚Æ‚ª‚Å‚«‚Ü‚·B

  ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh‚͉ñü‚É“Á’è‚̃^ƒCƒv(PPP‚âUUCP‚È‚Ç)‚̐ڑ±‚¾
  ‚¯‚ð‹–‚·ê‡‚É‚à—LŒø‚É—˜—p‚Å‚«‚Ü‚·Bƒ†[ƒU‚ª‘¼‚̃^ƒCƒv‚̐ڑ±(—Ⴆ‚΃Š
  ƒXƒg‚ɍڂÁ‚Ä‚¢‚éƒVƒFƒ‹‚ðŽg‚¤)‚ðs‚¤ê‡‚É‚Í‚±‚̉ñü‚̃pƒXƒ[ƒh‚ð’m‚Á
  ‚Ä‚¢‚é•K—v‚ª‚ ‚è‚Ü‚·B

  ƒ_ƒCƒAƒ‹ƒAƒbƒvEƒpƒXƒ[ƒh‚ðŽg‚¤‘O‚ɂ́A‘Oq‚̐ݒèƒtƒ@ƒCƒ‹‚ðì¬‚·‚é•K
  —v‚ª‚ ‚è‚Ü‚·B

  ƒRƒ}ƒ“ƒh dpasswd ‚ðŽg‚Á‚Ä /etc/d_passwdƒtƒ@ƒCƒ‹‚̃VƒFƒ‹‚ɑ΂·‚éƒpƒXƒ
  [ƒh‚ðÝ’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BÚ‚µ‚­‚̓Iƒ“ƒ‰ƒCƒ“ƒ}ƒjƒ…ƒAƒ‹‚ðŽQÆ‚µ‚Ä‚­
  ‚¾‚³‚¢B

  8.  CƒvƒƒOƒ‰ƒ€‚ð Shadow Suite ‚ɑΉž‚³‚¹‚é•û–@

  ƒvƒƒOƒ‰ƒ€‚É shadow ƒTƒ|[ƒg‚ð‰Á‚¦‚é‚Ì‚ÍŽÀÛ‚É‚Í‚Æ‚Ä‚àŠÈ’P‚Å‚·B–â‘è‚Í
  /etc/shadow ƒtƒ@ƒCƒ‹‚ɃAƒNƒZƒX‚·‚邽‚߂ɃvƒƒOƒ‰ƒ€‚ÍrootŒ ŒÀ‚ÅŽÀs‚·‚é
  ‚©Aroot‚É SUID ‚µ‚ÄŽÀs‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚±‚Æ‚Å‚·B

  ‚±‚ê‚͏d‘å‚È–â‘è‚Å‚·BSUID ‚·‚éƒvƒƒOƒ‰ƒ€‚ðì‚鎞‚É‚Í”ñí‚ɐTd‚Ƀvƒ
  ƒOƒ‰ƒ€‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B—Ⴆ‚΁AƒVƒFƒ‹‚ɃGƒXƒP[ƒv‚Å‚«‚éƒvƒƒOƒ‰ƒ€‚Í
  ƒvƒƒOƒ‰ƒ€‚ªroot‚É SUID ‚³‚ê‚Ä‚¢‚Ä‚àroot‚Æ‚µ‚ÄŽÀs‚µ‚Ä‚Í‚È‚è‚Ü‚¹‚ñB

  ƒpƒXƒ[ƒh‚̃`ƒFƒbƒN‚Í‚·‚邪A‚»‚êˆÈŠO‚É‚Íroot‚Æ‚µ‚Ä“®ì‚·‚é•K—v‚ª‚È‚¢
  ‚悤‚ȏꍇ‚Å shadow ƒTƒ|[ƒg‚ðƒvƒƒOƒ‰ƒ€‚ɒljÁ‚·‚鎞‚Í shadow ƒOƒ‹[ƒv
  ‚É SGID ‚·‚é•û‚ª‚¸‚Á‚ƈÀ‘S‚Å‚·Bxlock ƒvƒƒOƒ‰ƒ€‚Í‚±‚̂悤‚È—á‚Ì“TŒ^‚Å
  ‚·B

  ˆÈ‰º‚ÅŽ¦‚·—á‚Ì pppd-1.2.1d ‚ÍŠù‚Éroot‚É SUID ‚³‚ê‚Ä‚¢‚é‚̂ŁAshadow ƒT
  ƒ|[ƒg‚ð‰Á‚¦‚邱‚ƂŁAƒvƒƒOƒ‰ƒ€‚ªƒZƒLƒ…ƒŠƒeƒB“I‚É‚æ‚èÆŽã‚ɂȂ邱‚Æ‚Í
  ‚à‚Í‚â‚ ‚è‚Ü‚¹‚ñB

  8.1.  ƒwƒbƒ_ƒtƒ@ƒCƒ‹

  ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚Í /usr/include/shadow ƒfƒBƒŒƒNƒgƒŠ“à‚É‚ ‚é‚ׂ«‚Å
  ‚·B/usr/include/shadow.h ‚à•K—v‚Å‚·‚ªA‚±‚ê‚Í
  /usr/include/shadow/shadow.h ‚ւ̃Vƒ“ƒ{ƒŠƒbƒNƒŠƒ“ƒN‚É‚È‚è‚Ü‚·B

  ƒvƒƒOƒ‰ƒ€‚É shadow ƒTƒ|[ƒg‚ð‰Á‚¦‚邽‚ß‚É‚ÍŽŸ‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚ðƒCƒ“ƒN
  ƒ‹[ƒh‚·‚é•K—v‚ª‚ ‚è‚Ü‚·:

  #include <shadow/shadow.h>
  #include <shadow/pwauth.h>

  shadow —p‚̃R[ƒh‚ððŒƒRƒ“ƒpƒCƒ‹‚Å—˜—p‚Å‚«‚é‚悤‚ɃRƒ“ƒpƒCƒ‰–½—ß‚ð—p
  ‚¢‚é‚Ì‚Í—Ç‚¢l‚¦‚Å‚·B(ˆÈ‰º‚Ì—á‚Å‚à‚»‚¤‚µ‚Ä‚¢‚Ü‚·B)

  8.2.  libshadow.a ƒ‰ƒCƒuƒ‰ƒŠ

  Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚鎞‚É‚Í libshadow.a ‚àì¬‚³‚êA/usr/lib
  ‚ɃCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ü‚·B

  ƒvƒƒOƒ‰ƒ€‚Å shadow ƒTƒ|[ƒg‚·‚邽‚߂ɂ́AƒŠƒ“ƒJ‚É libshadow.a ‚ðƒŠƒ“
  ƒN‚·‚é‚悤‚ÉŽwŽ¦‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B

  ‚±‚ê‚͈ȉº‚̂悤‚ɍs‚¢‚Ü‚·:

       gcc program.c -o program -lshadow

  ‚µ‚©‚µAˆÈ‰º‚Ì—á‚Å‚í‚©‚é‚悤‚É‘å‹K–͂ȃvƒƒOƒ‰ƒ€‚Å‚Í‘å’ï Makefile ‚ðŽg
  ‚¢‚Ü‚·‚©‚çA•’Ê‚Í LIBS •Ï”‚ð•ÏX‚µ‚Ü‚·B

  8.3.  Shadow \‘¢‘Ì

  libshadow.a ƒ‰ƒCƒuƒ‰ƒŠ‚Í spwd ‚ƌĂ΂ê‚é\‘¢‘Ì‚É /etc/shadow ƒtƒ@ƒCƒ‹
  ‚©‚çŽæ‚èo‚µ‚½î•ñ‚ðŠi”[‚µ‚Ü‚·B‚±‚ê‚Í ƒwƒbƒ_ƒtƒ@ƒCƒ‹
  /usr/include/shadow/shadow.h ‚É‚¨‚¯‚é spwd ‚Ì’è‹`‚Å‚·:

  ______________________________________________________________________
  struct spwd
  {
    char *sp_namp;                /* login name */
    char *sp_pwdp;                /* encrypted password */
    sptime sp_lstchg;             /* date of last change */
    sptime sp_min;                /* minimum number of days between changes */
    sptime sp_max;                /* maximum number of days between changes */
    sptime sp_warn;               /* number of days of warning before password
                                     expires */
    sptime sp_inact;              /* number of days after password expires
                                     until the account becomes unusable. */
    sptime sp_expire;             /* days since 1/1/70 until account expires
  */
    unsigned long sp_flag;        /* reserved for future use */
  };
  ______________________________________________________________________

  Shadow Suite ‚Å‚Í sp_pwdp ‚É’P‚È‚éƒGƒ“ƒR[ƒh‚³‚ꂽƒpƒXƒ[ƒh‚¾‚¯‚Å‚È
  ‚­A‚»‚êˆÈŠO‚̏î•ñ‚àŽ‚½‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B—Ⴆ‚΁AƒpƒXƒ[ƒhƒtƒB[ƒ‹
  ƒh‚ªˆÈ‰º‚̂悤‚ȍs‚ðŠÜ‚ñ‚Å‚¢‚éê‡‚Å‚·:

       username:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::

  ‚±‚ê‚ŁAƒpƒXƒ[ƒh‚ɉÁ‚¦‚Ä/sbin/extra ƒvƒƒOƒ‰ƒ€‚ð‚³‚ç‚È‚é”FØ‚É—p‚¢‚é
  ‚±‚Æ‚ðŽwŽ¦‚µ‚Ä‚¢‚Ü‚·BŒÄ‚яo‚³‚ꂽƒvƒƒOƒ‰ƒ€‚́Aƒ†[ƒU–¼‚Æ‚È‚ºŒÄ‚яo‚³
  ‚ꂽ‚©‚ðŽ¦‚·ƒXƒCƒbƒ`‚ð“n‚³‚ê‚Ü‚·B‚æ‚èÚ‚µ‚¢î•ñ‚𓾂邽‚ß‚É‚Í
  /usr/include/shadow/pwauth.h ‚ƃ\[ƒXƒR[ƒh‚ÉŠÜ‚Ü‚ê‚é pwauth.c ‚ð“Ç‚ñ
  ‚Å‚­‚¾‚³‚¢B

  ‚±‚ꂪˆÓ–¡‚·‚é‚Æ‚±‚ë‚́A2ŽŸ”FØ‚É’ˆÓ‚·‚邱‚ƂƁAŽÀÛ‚Ì”FØ‚ðs‚¤Žž‚É
  ‚͊֐” pwauth ‚ð—p‚¢‚é‚ׂ«‚¾‚Æ‚¢‚¤‚±‚Æ‚Å‚·BˆÈ‰º‚Ì—á‘è‚Å‚Í‚±‚ê‚ðŽÀs‚µ
  ‚Ä‚¢‚Ü‚·B

  Œ»Ý‘¶Ý‚µ‚Ä‚¢‚éƒvƒƒOƒ‰ƒ€‚Ì‚Ù‚Æ‚ñ‚Ç‚ª‚±‚ê‚ðs‚Á‚Ä‚¢‚È‚¢‚½‚߁A Shadow
  Suite‚̍ìŽÒ‚͏«—ˆ‚̃o[ƒWƒ‡ƒ“‚Å‚Í‚±‚Ì‹@”\‚𖳂­‚·‚©Žd—l‚ð•ÏX‚·‚邱‚Æ
  ‚ðŒ¾‚Á‚Ä‚¢‚Ü‚·B

  8.4.  Shadow ƒTƒ|[ƒg‚Ì‚½‚߂̊֐”

  shadow.h ƒtƒ@ƒCƒ‹‚É‚Í libshadow.a ƒ‰ƒCƒuƒ‰ƒŠ‚ªŠÜ‚ñ‚Å‚¢‚éŠÖ”‚̊֐”ƒvƒ
  ƒgƒ^ƒCƒv‚à‘‚©‚ê‚Ä‚¢‚Ü‚·:

  ______________________________________________________________________
  extern void setspent __P ((void));
  extern void endspent __P ((void));
  extern struct spwd *sgetspent __P ((__const char *__string));
  extern struct spwd *fgetspent __P ((FILE *__fp));
  extern struct spwd *getspent __P ((void));
  extern struct spwd *getspnam __P ((__const char *__name));
  extern int putspent __P ((__const struct spwd *__sp, FILE *__fp));
  ______________________________________________________________________

  ‚±‚ê‚©‚ç—á‘è‚Å—p‚¢‚éŠÖ”‚Í getspnam (—^‚¦‚ç‚ꂽ–¼‘O‚ɑΉž‚·‚é spwd \
  ‘¢‘Ì‚ð—^‚¦‚é)‚Å‚·B

  8.5.  —á‘è

  ‚±‚ê‚̓fƒtƒHƒ‹ƒg‚Å shadow ƒTƒ|[ƒg‚ð‚µ‚Ä‚¢‚È‚¢ƒvƒƒOƒ‰ƒ€‚ð shadow ‘Ήž
  ‚³‚¹‚é—á‚Å‚·B

  ‚±‚Ì—á‚Å‚Í Point-to-Point ƒvƒƒgƒRƒ‹ƒT[ƒo(pppd-1.2.1d) ‚ð—p‚¢‚Ä‚¢‚Ü
  ‚·B‚±‚̃vƒƒOƒ‰ƒ€‚Í PAP ‚â CHAP ƒtƒ@ƒCƒ‹‚Å‚È‚­ /etc/passwd ƒtƒ@ƒCƒ‹‚©
  ‚瓾‚½ƒ†[ƒU–¼‚ƃpƒXƒ[ƒh‚ð—p‚¢‚Ä PAP ”FØ‚ðs‚¤ƒ‚[ƒh‚ðŽ‚Á‚Ä‚¢‚Ü
  ‚·BŠù‚É pppd-2.2.0 ‚Å shadow ƒTƒ|[ƒg‚ªs‚í‚ê‚Ä‚¢‚é‚̂ŁApppd-2.2.0
  ‚ɑ΂µ‚Ä—á‘è‚̃R[ƒh‚ð’ljÁ‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB

  pppd ‚Ì‚±‚Ì‹@”\‚Í‚ ‚Ü‚èŽg‚í‚È‚¢‚à‚Ì‚Å‚·‚ªAShadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹
  ‚·‚é‚ƃpƒXƒ[ƒh‚ª /etc/passwd ‚É•ÛŽ‚³‚ê‚È‚­‚Ȃ邽‚߂ɁA‚±‚Ì‹@”\‚Í‘S
  ‚­Žg‚¦‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·B

  pppd-1.2.1d ‚̃†[ƒU”FØ‚Ì•”•ª‚̃R[ƒh‚Í
  /usr/src/pppd-1.2.1d/pppd/auth.c ƒtƒ@ƒCƒ‹‚É‚ ‚è‚Ü‚·B

  ˆÈ‰º‚̃R[ƒh‚̓R[ƒh“à‚Ì‘¼‚Ì #include –½—ß‚æ‚è‚à‘O‚ɉÁ‚¦‚é•K—v‚ª‚ ‚è‚Ü
  ‚·BðŒ–½—ß‚Å #include ‚ðˆÍ‚ñ‚Å‚¢‚Ü‚·(‚µ‚½‚ª‚Á‚Ä shadow ƒTƒ|[ƒg‚ ‚è
  ‚ŃRƒ“ƒpƒCƒ‹‚·‚鎞‚¾‚¯ƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚Ü‚·)B
  ______________________________________________________________________
  #ifdef HAS_SHADOW
  #include <shadow.h>
  #include <shadow/pwauth.h>
  #endif
  ______________________________________________________________________

  ŽŸ‚Ì•”•ª‚ÍŽÀÛ‚̃R[ƒh‚ɑ΂·‚é•ÏX“_‚Å‚·Bauth.c ƒtƒ@ƒCƒ‹‚ɍX‚ɕύX‚ð
  ‰Á‚¦‚Ü‚·B

  •ÏX‘O‚Ì auth.c:

  ______________________________________________________________________
  /*
   * login - Check the user name and password against the system
   * password database, and login the user if OK.
   *
   * returns:
   *      UPAP_AUTHNAK: Login failed.
   *      UPAP_AUTHACK: Login succeeded.
   * In either case, msg points to an appropriate message.
   */
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;

      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }
       /*
       * XXX If no passwd, let them login without one.
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHACK);
      }

      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }

      syslog(LOG_INFO, "user %s logged in", user);

      /*
       * Write a wtmp entry for this user.
       */
      tty = strrchr(devname, '/');
      if (tty == NULL)
          tty = devname;
      else
          tty++;
      logwtmp(tty, user, "");             /* Add wtmp login entry */
      logged_in = TRUE;

      return (UPAP_AUTHACK);
  }
  ______________________________________________________________________

  ƒ†[ƒU‚̃pƒXƒ[ƒh‚Í pw->pw_passwd ‚É‘ã“ü‚³‚ê‚Ä‚¢‚é‚̂ŁA‚±‚±‚ōs‚¤•K
  —v‚ª‚ ‚é‚̂͊֐” getspnam ‚ð’ljÁ‚·‚邱‚Æ‚Å‚·B‚±‚̊֐”‚̓pƒXƒ[ƒh‚ð
  spwd->sp_pwdp ‚É‘ã“ü‚µ‚Ü‚·B

  ŽŸ‚ɁAŽÀÛ‚Ì”FØ‚ðs‚¤‚½‚߂Ɋ֐” pwauth ‚ð‰Á‚¦‚Ü‚·B‚±‚̊֐”‚Í shadow
  ƒtƒ@ƒCƒ‹‚ª2ŽŸ”FØ‚ð‚·‚é‚悤‚ɐݒ肳‚ê‚Ä‚¢‚éê‡‚ɂ́AŽ©“®“I‚É2ŽŸ”FØ‚ð
  ŽÀs‚µ‚Ü‚·B

  shadow ‚ðƒTƒ|[ƒg‚·‚é‚悤‚ɕύX‚µ‚½Œã‚Ìauth.c:

  ______________________________________________________________________
  /*
   * login - Check the user name and password against the system
   * password database, and login the user if OK.
   *
   * This function has been modified to support the Linux Shadow Password
   * Suite if USE_SHADOW is defined.
   *
   * returns:
   *      UPAP_AUTHNAK: Login failed.
   *      UPAP_AUTHACK: Login succeeded.
   * In either case, msg points to an appropriate message.
   */
  static int
  login(user, passwd, msg, msglen)
      char *user;
      char *passwd;
      char **msg;
      int *msglen;
  {
      struct passwd *pw;
      char *epasswd;
      char *tty;

  #ifdef USE_SHADOW
      struct spwd *spwd;
      struct spwd *getspnam();
  #endif

      if ((pw = getpwnam(user)) == NULL) {
          return (UPAP_AUTHNAK);
      }

  #ifdef USE_SHADOW
          spwd = getspnam(user);
          if (spwd)
                  pw->pw_passwd = spwd->sp-pwdp;
  #endif

       /*
       * XXX If no passwd, let NOT them login without one.
       */
      if (pw->pw_passwd == '\0') {
          return (UPAP_AUTHNAK);
      }
  #ifdef HAS_SHADOW
      if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
           && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
          || !valid (passwd, pw)) {
          return (UPAP_AUTHNAK);
      }
  #else
      epasswd = crypt(passwd, pw->pw_passwd);
      if (strcmp(epasswd, pw->pw_passwd)) {
          return (UPAP_AUTHNAK);
      }
  #endif

      syslog(LOG_INFO, "user %s logged in", user);

      /*
       * Write a wtmp entry for this user.
       */
      tty = strrchr(devname, '/');
      if (tty == NULL)
          tty = devname;
      else
          tty++;
      logwtmp(tty, user, "");             /* Add wtmp login entry */
      logged_in = TRUE;

      return (UPAP_AUTHACK);
  }
  ______________________________________________________________________

  ’ˆÓ[‚­’²‚ׂê‚΁A‘¼‚É‚à•ÏX“_‚ª‚ ‚邱‚Æ‚ª‚í‚©‚è‚Ü‚·BƒIƒŠƒWƒiƒ‹‚̃o[
  ƒWƒ‡ƒ“‚Å‚Í/etc/passwdƒtƒ@ƒCƒ‹“à‚ɃpƒXƒ[ƒh‚ª‚È‚¢ê‡‚ɂ̓AƒNƒZƒX‚ð‹–
  ‚µ‚Ü‚·B(UPAP_AUTHACK ‚ð–ß‚µ’l‚É‚·‚éB)‚±‚ê‚Í‚ ‚Ü‚è—Ç‚­‚È‚¢‚±‚Æ‚Å‚·B
  •’ʂ̃ƒOƒCƒ“‚Å‚Í PPP ƒvƒƒZƒX‚ւ̃AƒNƒZƒX‚ð‹–‚·Žž‚Ɉê‚‚̃AƒJƒEƒ“ƒg
  ‚ð—p‚¢A‚»‚ê‚©‚ç /etc/passwd ƒtƒ@ƒCƒ‹‚̃†[ƒU–¼‚Æ /etc/shadowƒtƒ@ƒCƒ‹
  ‚̃pƒXƒ[ƒh‚ð—˜—p‚µ‚āA“ü—Í‚³‚ꂽƒ†[ƒU–¼‚ƃpƒXƒ[ƒh‚ɑ΂µ‚Ä PAP ”F
  Ø‚ðs‚¤‚©‚ç‚Å‚·B

  ‚¾‚©‚çA‚à‚µŒ³‚̃o[ƒWƒ‡ƒ“‚ðƒ†[ƒU(—Ⴆ‚Î ppp)‚̃VƒFƒ‹‚Æ‚µ‚Ä‘–‚点‚é
  ‚ƁAƒ†[ƒU ppp ‚Å‹óƒpƒXƒ[ƒh‚É‚µ‚Ä PAP ‚ðÝ’肵‚Ä‚à’N‚à PPP Ú‘±‚ð“¾
  ‚邱‚Æ‚ª‚Å‚«‚È‚­‚È‚è‚Ü‚·B

  ƒpƒXƒ[ƒh‚ª‹ó‚ÌŽž‚É‚Í UPAP_AUTHNAK ‚Å‚È‚­ UPAP_AUTHACK‚ð–ß‚µ’l‚Æ‚·‚é
  ‚悤‚É‚·‚邱‚Æ‚Å‚àC³‚Å‚«‚Ü‚·B

  –Ê”’‚¢‚±‚ƂɁApppd-2.2.0 ‚É‚à“¯‚¶–â‘肪‚ ‚è‚Ü‚·B

  ŽŸ‚ɁAˆÈ‰º‚Ì2“_‚ɂ‚¢‚Ä Makefile ‚ðC³‚·‚é•K—v‚ª‚ ‚è‚Ü‚·: USE_SHADOW
  ‚ð’è‹`‚·‚邱‚ƂƁAlibshadow.a ‚ðƒŠƒ“ƒN‚·‚é‚悤‚É‚·‚邱‚Æ‚Å‚·B

  Makefile ‚ð•ÒW‚µ‚āAŽŸ‚̍s‚ð‰Á‚¦‚Ä‚­‚¾‚³‚¢:

       LIBS = -lshadow

  ‚»‚ê‚©‚çAŽŸ‚̍s‚ðŒ©‚Â‚¯‚Ä:

       COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t

  ˆÈ‰º‚̂悤‚ɕύX‚µ‚Ä‚­‚¾‚³‚¢:

       COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW

  ÅŒã‚ɁAƒRƒ“ƒpƒCƒ‹‹y‚уCƒ“ƒXƒg[ƒ‹‚ðŽÀs‚µ‚Ü‚µ‚傤B

  9.  ‚æ‚­•·‚©‚ê‚鎿–â(Frequently Asked Questions).

  Q: /etc/securettys ƒtƒ@ƒCƒ‹‚ðŽg‚Á‚Ä root‚ªƒƒOƒCƒ“‚Å‚«‚é tty ‚𐧌䂵
  ‚悤‚Æ‚µ‚Ä‚¢‚é‚Ì‚Å‚·‚ªA‚¤‚Ü‚­‚¢‚«‚Ü‚¹‚ñB

  A: /etc/securettys ‚Í Shadow Suite‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ꂽŒã‚É‚Í‘S‚­ˆÓ–¡‚ð
  Ž‚¿‚Ü‚¹‚ñBroot‚ª—˜—p‚Å‚«‚é tty ‚ð‹Lq‚·‚éÝ’èƒtƒ@ƒCƒ‹‚Í
  /etc/login.defs‚É‚È‚è‚Ü‚·B‚±‚̃tƒ@ƒCƒ‹“à‚Å‘¼‚̃tƒ@ƒCƒ‹‚ðŽw’è‚·‚邱‚Æ
  ‚à‚ ‚è‚Ü‚·B

  Q: Shadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½‚Ì‚Å‚·‚ªAƒƒOƒCƒ“‚ª‚Å‚«‚È‚­‚È‚Á‚Ä‚µ
  ‚Ü‚¢‚Ü‚µ‚½B‰½‚ªˆ«‚¢‚Ì‚Å‚µ‚傤H

  A: ‚¨‚»‚ç‚­Shadow Suite‚̃vƒƒOƒ‰ƒ€‚̓Cƒ“ƒXƒg[ƒ‹‚µ‚½‚¯‚ê‚ǁApwconv‚ð
  ŽÀs‚µ‚Ä‚¢‚È‚¢‚©A/etc/npasswd‚ð
  /etc/passwd‚ɁA/etc/nshadow‚ð/etc/shadow‚É‚»‚ꂼ‚êƒRƒs[‚·‚é‚Ì‚ð–Y‚ê‚é
  ‚©‚µ‚½‚Ì‚Å‚µ‚傤Blogin.defs‚ð /etc‚ɃRƒs[‚µ‚Ä‚¢‚È‚¢‚Ì‚©‚à‚µ‚ê‚Ü‚¹
  ‚ñB

  Q:xlock ‚̏͂Š/etc/shadowƒtƒ@ƒCƒ‹‚̏Š—LƒOƒ‹[ƒv‚ð shadow‚É‚¹‚æ‚Æ‚ ‚è
  ‚Ü‚µ‚½‚ªA‚»‚̂悤‚ȃOƒ‹[ƒv‚Í‚ ‚è‚Ü‚¹‚ñB‚Ç‚¤‚µ‚½‚ç—Ç‚¢‚Ì‚Å‚µ‚傤‚©H

  A:ƒOƒ‹[ƒv‚ð’ljÁ‚µ‚Ü‚µ‚傤B’P‚É/etc/groupƒtƒ@ƒCƒ‹‚ð•ÒW‚µ‚āAshadow
  ƒOƒ‹[ƒv‚ɂ‚¢‚Ä‚Ì‹Lq‚ð‰Á‚¦‚邾‚¯‚Å‚·BƒOƒ‹[ƒvID‚ª‘¼‚Əd•¡‚µ‚È‚¢‚悤
  ‚É‚·‚é“_‚ƁAnogroup‚̃Gƒ“ƒgƒŠ[‚æ‚è‘O‚ɒljÁ‚·‚é“_‚É‚Í’ˆÓ‚µ‚Ä‚­‚¾‚³
  ‚¢B’Pƒ‚É xlock‚ð root ‚É SUID ‚·‚é‚Æ‚¢‚¤•û–@‚à‚ ‚è‚Ü‚·B

  Q: Linux ”Å Shadow Suite ‚ɂ‚¢‚Ẵ[ƒŠƒ“ƒOƒŠƒXƒg‚Í‚ ‚è‚Ü‚·‚©H

  A: ‚ ‚è‚Ü‚·B‚µ‚©‚µA‚±‚ê‚ÍŽŸ‚̃o[ƒWƒ‡ƒ“‚Ì Linux”ÅShadow Suite ‚ÌŠJ”­
  ‚ƃÀƒeƒXƒg‚Ì‚½‚ß‚Ì‚à‚Ì‚Å‚·B shadow-list-request@neptune.cin.netˆ¶‚ɃT
  ƒuƒWƒFƒNƒg‚ª subscribe‚Å‚ ‚郁[ƒ‹‚𑗂邱‚Ƃс[ƒŠƒ“ƒOƒŠƒXƒg‚ÉŽQ‰Á‚Å
  ‚«‚Ü‚·B‚±‚̃[ƒŠƒ“ƒOƒŠƒXƒg‚Í Linux”Åshadow-YYMMSS‚ɂ‚¢‚Ä‚Ì‹c˜_‚ðs
  ‚¤êŠ‚Å‚·BŠJ”­‚ɉÁ‚í‚肽‚¢‚© Shadow Suite ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚½‚̂ŐV‚µ
  ‚¢ƒŠƒŠ[ƒX‚ɂ‚¢‚Ă̏î•ñ‚𓾂½‚¢ê‡‚É‚ÍŽQ‰Á‚·‚é‚Æ—Ç‚¢‚Å‚µ‚傤B

  Q:Shadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚µ‚½‚ªA userdelƒRƒ}ƒ“ƒh‚ðŽÀs‚·‚é
  ‚Æ"userdel: cannot open shadow group file"‚Æ‚¢‚¤ƒGƒ‰[‚ªo‚Ü‚·B‰½‚ª‚¨
  ‚©‚µ‚¢‚Ì‚Å‚µ‚傤H

  A: Shadow Suite ‚ðSHADOWGRPƒIƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µ‚ăRƒ“ƒpƒCƒ‹‚µ‚½‚Ì
  ‚ɁA/etc/gshadowƒtƒ@ƒCƒ‹‚ª‚È‚¢‚Ì‚Å‚µ‚傤Bconfig.h‚ðC³‚µ‚čăRƒ“ƒpƒC
  ƒ‹‚·‚é‚©A/etc/group ƒtƒ@ƒCƒ‹‚ðì‚è‚Ü‚µ‚傤Bshadow ƒOƒ‹[ƒv‚Ìà–¾‚̏Í
  ‚àŠm”F‚µ‚Ü‚µ‚傤B

  Q: Shadow Suite‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚µ‚½‚ªA /etc/passwd‚Ɉ͆‰»‚³‚ꂽƒp
  ƒXƒ[ƒh‚ª‘‚©‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·B‚Ç‚¤‚µ‚Ä‚Å‚·‚©H

  A:‚¨‚»‚ç‚­config.hƒtƒ@ƒCƒ‹“à‚ÌAUTOSHADOWƒIƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µ‚ăRƒ“ƒpƒC
  ƒ‹‚µ‚½‚©A‚ ‚È‚½‚ÌŽg‚Á‚Ä‚¢‚élibc ‚ªSAHDOW_COMPATƒIƒvƒVƒ‡ƒ“‚ð—LŒø‚É‚µ‚Ä
  ƒRƒ“ƒpƒCƒ‹‚³‚ê‚Ä‚¢‚é‚©‚Å‚·B‚Ç‚¿‚炪Œ´ˆö‚©Šm”F‚µ‚ÄŠY“–‚·‚é•û‚ðÄƒRƒ“ƒp
  ƒCƒ‹‚µ‚Ü‚µ‚傤B

  10.  Copyright Message(’˜ìŒ •\Ž¦)

  The Linux Shadow Password HOWTO is Copyright (c) 1996 Michael H.
  Jackson.

  Permission is granted to make and distribute verbatim copies of this
  document provided the copyright notice and this permission notice are
  preserved on all copies.

  Permission is granted to copy and distribute modified versions of this
  document under the conditions for verbatim copies above, provided a
  notice clearly stating that the document is a modified version is also
  included in the modified document.

  Permission is granted to copy and distribute translations of this
  document into another language, under the conditions specified above
  for modified versions.

  Permission is granted to convert this document into another media
  under the conditions specified above for modified versions provided
  the requirement to acknowledge the source document is fulfilled by
  inclusion of an obvious reference to the source document in the new
  media. Where there is any doubt as to what defines 'obvious' the
  copyright owner reserves the right to decide.

  ’ˆÓ: ˆÈ‰º‚̘a–ó‚Í‚ ‚­‚Ü‚ÅŽQl‚Å‚·B’˜ìŒ ‚ɂ‚¢‚Ä‚ÍŒ´•¶‚Ì•\Ž¦‚ɏ]‚Á‚Ä
  ‚­‚¾‚³‚¢B

  The Linux Shadow Password HOWTO ‚Í Michael H. Jackson ‚Ì’˜ì•¨‚Å‚·B
  (Copyright (c) 1996 Michael H. Jackson)

  ’˜ìŒ •\Ž¦‹y‚Ñ‚±‚Ì‹–‘ø•\Ž¦‚ð‘S‚ẴRƒs[‚ÉŽc‚·‚±‚Æ‚ððŒ‚ɁA‚±‚Ì•¶‘‚ð
  ‰ü•Ï‚¹‚¸‚É•¡ŽÊ‹y‚Ñ”z•z‚·‚邱‚Æ‚ª‰Â”\‚Å‚·B

  ã‹L‚ÌðŒ‚ð‰ü•Ï‚µ‚È‚¢‚±‚Æ‹y‚Ñ•¶‘‚ª‰ü•Ï‚³‚ê‚Ä‚¢‚邱‚Æ–¾‹L‚·‚邱‚Æ‚ðð
  Œ‚ɁA‚±‚Ì•¶‘‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ð•¡ŽÊ‹y‚Ñ”z•z‚·‚邱‚Æ‚ª‰Â”\‚Å‚·B

  ãq‚̉ü•Ï‚³‚ꂽ•¶‘‚ɑ΂·‚éðŒ‚Æ“¯‚¶ðŒ‚ŁA‚±‚Ì•¶‘‚𑼂̌¾Œê‚É–|–ó
  ‚µ‚½‚à‚Ì‚ð•¡ŽÊ‹y‚Ñ”z•z‚·‚邱‚Æ‚ª‰Â”\‚Å‚·B

  ãq‚̉ü•Ï‚³‚ꂽ•¶‘‚ɑ΂·‚éðŒ‚ɉÁ‚¦AV‚µ‚¢ƒƒfƒBƒA“à‚ÉŒ³‚Ì•¶‘‚Ö‚Ì
  –¾”’‚ÈŽQÆ‚ªŠÜ‚Ü‚ê‚邱‚Æ‚ÅŒ³‚Ì•¶‘‚Å‚ ‚邱‚Æ‚ðŽå’£‚·‚é—v‹‚ª‰Ê‚½‚³‚ê‚é
  ‚±‚Æ‚ððŒ‚ɁA‚±‚Ì•¶‘‚𑼂̃ƒfƒBƒA‚Å”z•z‚·‚邱‚Æ‚ª‰Â”\‚Å‚·Bu–¾”’
  ‚Ɂv‚Ì’è‹`‚ª‚Í‚Á‚«‚肵‚È‚¢ê‡‚É‚Í’˜ìŒ ŽÒ‚ªŒˆ’è‚·‚錠—˜‚ð•Û—¯‚µ‚Ä‚¢‚é
  ‚à‚Ì‚Æ‚µ‚Ü‚·B

  11.  ‚»‚Ì‘¼ / ŽÓŽ«

  —á‘è‚Ì auth.c ‚ɑ΂µ‚ẴR[ƒh‚Í pppd-1.2.1d ‚Æ ppp-2.1.0e ‚©‚çˆø—p‚µ
  ‚Ü‚µ‚½B‚±‚ê‚ç‚̃\ƒtƒgƒEƒFƒA‚Í Australian National University ‹y‚Ñ
  Carnegie Mellon University ‚Ì’˜ì•¨‚Å‚·B (Copyright (c) 1993 and The
  Australian National University and Copyright (c) 1989 Carnegie Mellon
  University)

  Thanks to Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> for
  writing and maintaining the Shadow Suite for Linux, and for his review
  and comments on this document.

  Shadow Suite‚̍ìŽÒ/ŠÇ—ŽÒ‚Å‚ ‚èA‚Ü‚½A‚±‚Ì•¶‘‚ðŒ©‚ÄƒRƒƒ“ƒg‚ð‰º‚³‚Á
  ‚½ Marek Michalkiewicz Ž <marekm@i17linuxb.ists.pwr.wroc.pl> ‚ÉŠ´ŽÓ‚µ
  ‚Ü‚·B

  ‚±‚Ì•¶‘‚Ì”á•]‹y‚уeƒXƒg‚ðs‚Á‚ĉº‚³‚Á‚½ Ron Tidd Ž<rtidd@tscnet.com>
  ‚ÉŠ´ŽÓ‚µ‚Ü‚·B

  •MŽÒ‚ɃtƒB[ƒhƒoƒbƒN‚ð‘—‚èA‚±‚Ì•¶‘‚̉ü—Ç‚É‹¦—Í‚µ‚Ä‚­‚¾‚³‚Á‚½ŠF—l‚ÉŠ´
  ŽÓ‚µ‚Ü‚·B

  ƒRƒƒ“ƒg‚â’ñˆÄ‚ª‚ ‚ê‚΂ǂ¤‚©•MŽÒ‚Ƀ[ƒ‹‚Å’m‚点‚Ä‚­‚¾‚³‚¢B

  Michael H. Jackson <mhjack@tscnet.com>

  12.  –óŽÒ‚æ‚è

  –|–ó‚Ì”z•zðŒ‚ÍŒ´•¶‚ɏ]‚¤‚à‚Ì‚Æ‚µ‚Ü‚·B‚Ü‚½–|–ó‚Ì“à—e‚ɂ‚¢‚Ä‚Í–óŽÒ‚Í
  ˆêØ‚̐ӔC‚ðŽ‚Ä‚Ü‚¹‚ñ‚̂ŁAŠF‚³‚ñ‚̐ӔC‚Å—˜—p‚µ‚Ä‚­‚¾‚³‚¢B

  Œë–ó‚È‚Ç‚ÌŽw“E‚â–ó‚ɑ΂·‚éƒRƒƒ“ƒg‚ð‚¨‘Ò‚¿‚µ‚Ä‚¢‚Ü‚·B‚¨‹CŒy‚Ƀ[ƒ‹‚­
  ‚¾‚³‚¢B

  “¡Œ´‹P‰Ã <fujiwara@linux.or.jp>