ȸ¿ø°¡ÀÔ   ȸ¿øÃ£±â
  ID PW
 
  °øÅë
  Solaris x86
  Solaris
  ÀÌÀü ³ª¸¸ÀÇ ÆÁ
 

   Á¦ ¸ñ : ¼Ö¶ó¸®½º¿¡¼­ »ç¿ëÀÚ ÆÐ½º¿öµå º¯°æ ÀÚµ¿È­(expect ÀÌ¿ë)
   ÀÛ¼ºÀÚ : ±è¼® ³¯Â¥ : 2008-07-23
   ºÐ·ù : °øÅë Á¶È¸¼ö : 5252

º» ³»¿ëÀº ½ãÀÇ ¼Ö¶ó¸®½º ¿¡¹ÝÁ©¸®½ºÆ®ÀÎ ±èºÀȯ ºÎÀå´ÔÀǺí·Î±×¿¡¼­ ÆÛ¿Â °ÍÀÔ´Ï´Ù.

=======================================================================


¼Ö¶ó¸®½º¿¡¼­ »ç¿ëÀÚ ÆÐ½º¿öµå º¯°æ ÀÚµ¿È­(expect ÀÌ¿ë)

¿¹Àü¿¡´Â CGI¸¦ ÀÌ¿ëÇÏ¿© À¥ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§¿¡´Â »ç¿ëÀÚ ¾ÏÈ£¸¦ À¥ ÀÎÅÍÆäÀ̽º·Î ¹Þ¾Æ¼­ º¯°æÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ¾ú½À´Ï´Ù.
Áö±ÝÀÇ À¥ ÀÎÅÍÆäÀ̽º¿¡¼­´Â JavaScript³ª pythonµî °í¼öÁØ ½ºÅ©¸³ÆÃÀ¸·Î ¹é¿£µå ÀÎÁõ ¼­ºñ½º¿Í ¿¬°áÇÏ´Â ¹æ¹ýÀ» ´ëºÎºÐ »ç¿ëÇÕ´Ï´Ù¸¸ ¿¹Àü¿¡´Â /usr/bin/passwd¶ó´Â À¯Æ¿¸®Æ¼¸¦ ÀÌ¿ëÇÏ¿© /etc/passwd È­ÀÏÀ» ±â¹ÝÀ¸·Î ÆÐ½º¿öµå¸¦ º¯°æÇØ¾ß Çß½À´Ï´Ù.

¿À´Ã³¯¿¡´Â ÇÊ¿äÇÏÁö ¾ÊÀ» µí Çϰí, ½ÇÁ¦·Î º¸¾È»óÀÇ ÀÌÀ¯·Î ±Ç°íµÇÁö ¾Ê½À´Ï´Ù¸¸, °£È¤ ½Ã½ºÅÛ ¸¶À̱׷¹À̼ÇÀ̳ª ÀÚµ¿ ¾÷µ¥ÀÌÆ®¸¦ ¹èÄ¡·Î ó¸®Çϱâ À§Çؼ­ ´ë·®ÀÇ »ç¿ëÀÚÀÇ ¾ÏÈ£¸¦ ÀÓÀÇ·Î º¯°æÇϱâ À§Çؼ­´Â ¿©ÀüÈ÷ ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®¸¦ ÅëÇÑ passwd º¯°æÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù.

ÀÌ·¯ÇÑ ¸ñÀûÀ¸·Î ÆÐ½º¿öµå¸¦ º¯°æÇϱâ À§Çؼ­ ¿¹Àü¿¡´Â ½©½ºÅ©¸³Æ®ÀÇ Ç¥ÁØ ÀÔÃâ·ÂÀ» Á¶Á¤ÇÏ¿© ½ºÅ©¸³Æ®Çß½À´Ï´Ù¸¸, ¼Ö¶ó¸®½º10¿¡¼­´Â ÀÌ·¸°Ô´Â ¾ÈµÇ´Â °Í °°½À´Ï´Ù(¹æ¹ýÀÌ ÀÖ´Â Áö´Â Á»´õ È®ÀÎÇØºÁ¾ß°Ú½À´Ï´Ù)

¾î·µç ¿ÀǼֶ󸮽º¿¡´Â (¼Ö¶ó¸®½º Community Edition 03/2008. Opensolaris 05/08°ú´Â ´Ù¸§)¿¡´Â expect¶ó´Â ½ºÅÄ´Ùµå ÀÔÃâ·ÂÀ» ÀüȯÇÏ´Â À¯¸íÇÑ ¿ÀÇ ¼Ò½º°¡ µé¾îÀÖ½À´Ï´Ù. ÀÌ ÅøÀ» ÀÌ¿ëÇÏ¿© ÆÐ½º¿öµå º¯°æÀ» ½ºÅ©¸³ÆÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½Àº mkpasswd¶ó´Â °£´ÜÇÑ expect ½ºÅ©¸³Æ® ÀÔ´Ï´Ù. »ç¿ë¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
#mkpasswd user1 oldpasswd newpasswd

#!/usr/bin/expect
#
# mkpasswd by Bonghwan Kim
#

spawn passwd [lindex $argv 0]
set new [lindex $argv 1]

expect "New Password:"
send "$new\r"
expect "Re-enter new Password:"
send "$new\r"
expect eof


mkpasswd¸¦ ½ÇÇàÇÒ¶§ ½ÇÇà ¾ÆÅ¥¸ÕÆ®·Î ±¸ ÆÐ½º¿öµå¿Í »õ ÆÐ½º¿öµå¸¦ ÁÖ°í ½ÇÇàÇϸé, Çѹø¿¡ º¯°æÀÌ °¡´ÉÇÕ´Ï´Ù.
¿©±â¼­ µÎ°¡Áö Áß¿äÇÑ °ÍÀº ÀÌ ½ºÅ©¸³Æ®´Â root ±ÇÇÑÀ» °¡Áö°í ½ÇÇàÀÌ µÇ¾î¾ß Çϸç, ÀÌ ½ºÅ©¸³Æ®°¡ ½ÇÇàµÉ¶§ÀÇ localeÀÌ ¹Ýµå½Ã POSIX 'C' À̾ ÇÕ´Ï´Ù. Áï, Å͹̳ο¡¼­ ½ÇÇàÇÒ¶§¿¡´Â LC_ALL=C;export LC_ALL ȤÀº ±×¿¡ ÁØÇÏ´Â ¸í·É¾î·Î ½©ÀÇ ·ÎÄÉÀÏÀ» C·Î ÀüȯÇÕ´Ï´Ù. ±× ÀÌÀ¯´Â ·ÎÄÉÀÏÀÌ ´Þ¶óÁö¸é expect°¡ ±â´ëÇÏ´Â ¹®ÀÚ¿­ÀÇ °ªÀÌ ·ÎÄöóÀÌÁîÈ­ µÇ¾î ½ºÆ®¸µÀÌ ´Þ¶óÁý´Ï´Ù. ¿¹¸¦ µé¾î, ko ȤÀº kr_KR.UTF-8À¸·Î µÇ¾î ÀÖÀ¸¸é "New Password:"¶ó°í ³ª¿ÀÁö ¾Ê°í "»õ ¾ÏÈ£:" ¿Í °°ÀÌ ¹°¾îº¸±â ¶§¹®ÀÔ´Ï´Ù.


ÀÏ¹Ý »ç¿ëÀÚ°¡ À§¿Í °°Àº ÆÐ½º¿öµå¸¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì¿¡´Â À§ÀÇ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÏ¹Ý »ç¿ëÀÚ Æ¯È÷ ÀÌ¹Ì ÆÐ½º¿öµå°¡ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡´Â ±âÁ¸ÀÇ ÆÐ½º¿öµå¸¦ ¹°¾îº¸´Â °úÁ¤ÀÌ Ãß°¡µÇ±â ¶§¹®ÀÔ´Ï´Ù. ÀÏ¹Ý »ç¿ëÀÚ°¡ ÀÚ±âÀÇ ÆÐ½º¿öµå¸¦ ÀÚµ¿À¸·Î º¯°æÇϰíÀÚ ÇÏ´Â °æ¿ì¿¡´Â À§ÀÇ ½ºÅ©¸³Æ®¸¦ ¾à°£ º¯°æÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇϸé ÀÛµ¿ÇÕ´Ï´Ù.

»ç¿ë¹ýÀº LC_ALL=C mkpasswd jac0001 abc123 qwer123 ¿Í °°ÀÌ ½ÇÇàÇÏ¸é µË´Ï´Ù.
#!/usr/bin/expect
spawn passwd [lindex $argv 0]
set old [lindex $argv 1]
set new [lindex $argv 2]

expect "Enter existing login password:"
send "$old\r"
expect "New Password:"
send "$new\r"
expect "Re-enter new Password:"
send "$new\r"
expect eof

Âü°í·Î ½ÇÇàÇϰí Å×½ºÆ®µÈ Ç÷§ÆûÀº ´ÙÀ½°ú °°½À´Ï´Ù.
solaris:~ 522
$cat /etc/release
Solaris Express Community Edition snv_86 X86
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 27 March 2008
solaris:~ 523
$expect -v
expect version 5.43.0



[¸ñ·Ïº¸±â]  [Ãâ·Â]  
  »çÀÌÆ® ¼Ò°³  |  ¿¬¶ôó  |  »çÀÌÆ® ¸Ê  |  À̸ÞÀÏÁÖ¼Ò ¹«´Ü ¼öÁý °ÅºÎ Copyright (c) 2018 Solaris School. All rights reserved.