SMB HOWTO
ÀúÀÚ: David Wood, dwood@plugged.net.au ¹ø¿ª : ÀÌ Ã¢ÇÑ,
chlee@physics.soongsil.ac.kr
v1.0, 10 August 1996
ÀÌ ¹®¼´Â SMB HOWTO ÀÌ´Ù. NetBIOS ¶Ç´Â LanManager¶ó°íµµ ºÒ¸®´Â Session
Message Block (SMB) ÇÁ·ÎÅäÄÝÀ» ¸®´ª½º¿¡¼ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
______________________________________________________________________
Â÷ ·Ê
1. ¼Ò°³
2. Á»´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¿øÇϸé
3. ¼³Ä¡
4. µ¥¸ó ½ÇÇà½ÃÅ°±â
5. ÀϹÝÀûÀÎ ¼³Á¤(/etc/smb.conf)
6. ¸®´ª½º µå¶óÀ̺긦 M$¿Í °øÀ¯½ÃÅ°±â
7. M$ÀÇ µå¶óÀ̺긦 ¸®´ª½º¿Í °øÀ¯½ÃÅ°±â
8. ¸®´ª½º ÇÁ¸°ÅÍ¿Í M$ °øÀ¯½ÃÅ°±â
9. M$ÀÇ ÇÁ¸°Å͸¦ ¸®´ª½º¿Í °øÀ¯Çϱâ
10. ÀúÀÛ±Ç
11. °¨»çÀÇ ±Û
______________________________________________________________________
1. ¼Ò°³
ÀÌ ¹®¼´Â SMB HOWTO ÀÌ´Ù. NetBIOS ¶Ç´Â LanManager¶ó°íµµ ºÒ¸®´Â Session
Message Block (SMB) ÇÁ·ÎÅäÄÝÀ» ¸®´ª½º¿¡¼ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
ÀÌ ¹®¼´Â David Wood (dwood@plugged.net.au) °¡ °ü¸®ÇÑ´Ù. ´ÙÀ½ ÆÇ¿¡
Æ÷ÇԵDZ⸦ ¿øÇÏ´Â Ãß°¡, ¼öÁ¤ ¶Ç´Â Á¤Á¤¿¡ ´ëÇÑ ¸ÞÀÏÀ» ¾ðÁ¦³ª ȯ¿µÇÑ´Ù.
SMB ÇÁ·ÎÅäÄÝÀº M$ 3.11, 95, NT(¾ÕÀ¸·Î M$·Î ÃÑĪÇÏ°Ú´Ù)¿¡¼ µð½ºÅ©¿Í
ÇÁ¸°Å͸¦ °øÀ¯Çϴµ¥ »ç¿ëµÈ´Ù. Andrew TridgellÀÌ ¸¸µç »ï¹Ù µµ±¸µéÀ»
ÀÌ¿ëÇؼ ¸®´ª½º(À¯´Ð½º)¿Í À©µµ¿ì °£¿¡ µð½ºÅ©, ÇÁ¸°ÅÍ °øÀ¯°¡ °¡´ÉÇÏ´Ù.
»ï¹Ù·Î ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¾Æ·¡ÀÇ ³× °¡Áö°¡ ÀÖ´Ù.
1. ¸®´ª½º ÆÄƼ¼Ç°ú M$¿ÍÀÇ °øÀ¯.
2. M$ ÆÄƼ¼Ç°ú ¸®´ª½º¿ÍÀÇ °øÀ¯.
3. ¸®´ª½ºÀÇ ÇÁ¸°ÅÍ¿Í M$¿ÍÀÇ °øÀ¯.
4. M$ÀÇ ÇÁ¸°ÅÍ¿Í ¸®´ª½º¿ÍÀÇ °øÀ¯.
ÀÌ ³× °¡Áö¸¦ ¾ÕÀ¸·Î ¼³¸íÇÏ°Ú´Ù.
2. Á»´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¿øÇϸé
»ï¹Ù´Â ¸Å¿ì º¹ÀâÇÏ°íµµ ¿ÏÀüÇÑ ÆÐÅ°ÁöÀÌ´Ù. »ï¹ÙÀÇ ¸ðµç °ÍÀ» ¼³¸íÇÑ´Ù´Â
°ÍÀº ÂüÀ¸·Î ¾î·Á¿î ÀÏÀÌ´Ù. ¶§¹®¿¡ ÀÌ ¹®¼¿¡¼´Â »ï¹ÙÀÇ ÈÀÏ, ÇÁ¸°Æ®
¼ºñ½º¸¦ ¸®´ª½º¿¡¼ ¾î¶»°Ô ±¸¼ºÇÏ´ÂÁö¸¦ ¼³¸íÇÒ °ÍÀÌ´Ù.
´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÏ¸é ´ÙÀ½ ¹®¼µéÀ» Âü°íÇϱ⠹ٶõ´Ù.
o »ï¹Ù¿¡ °ü·ÃµÈ ¹®¼µéÀº »ï¹Ù ÆÐÅ°Áö¿¡ Æ÷ÇԵǾî ÀÖ´Ù. ÆÐÅ°Áö¸¦ ¾òÀ»
¼ö ÀÖ´Â °÷ : ftp://nimbus.anu.edu.au/pub/tridge/samba/
o The linux Printing HOWTO.
o The Print2Win Mini-HOWTO.
3. ¼³Ä¡
»ï¹ÙÀÇ °¡Àå ÃÖ±ÙÀÇ ¼Ò½º´Â ´ÙÀ½ »çÀÌÆ®¿¡¼ ±¸ÇÒ ¼ö ÀÖ´Ù.
ftp://nimbus.anu.edu.au/pub/tridge/samba/
·¹µåÇÞÀ» ¼³Ä¡ÇÑ´Ù¸é »ï¹ÙÆÐÅ°Áö´Â ¿É¼ÇÀ̹ǷΠ¼±ÅÃÀ» Çؾ߸¸ ÇÑ´Ù. ´Ù¸¥
¹èÆ÷ÆǵéÀº »ï¹Ù ½ÇÇàÈÀÏÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù.
¾Æ·¡ÀÇ µÎ µ¥¸óÀº »ï¹Ù¸¦ »ç¿ëÇϱâ À§ÇØ ²À ÇÊ¿äÇÑ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î
/usr/sbin µð·ºÅ丮 ¾Æ·¡¿¡ ¼³Ä¡µÇ¾îÀÖ°í ½Ã½ºÅÛÀÇ Ãʱ⼳Á¤ ½ºÅ©¸³Æ®³ª
inetd¿¡ ÀÇÇؼ ºÎÆýÿ¡ ½ÃÀ۵ǾîÁø´Ù. ``µ¥¸ó ½ÇÇà½ÃÅ°±â''¿¡¼
½ºÅ©¸³Æ®ÀÇ ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
______________________________________________________________________
smbd (SMB µ¥¸ó)
nmbd (Ŭ¶óÀ̾ðÆ®¸¦ À§ÇØ NetBIOS nameserver¸¦ Áö¿øÇÏ´Ù )
______________________________________________________________________
»ï¹Ù ½ÇÇàÈÀϵéÀº ÀϹÝÀûÀ¸·Î /usr/bin ¾Æ·¡¿¡ ¼³Ä¡µÇÁö¸¸ ¹Ù²Ü ¼ö ÀÖ´Ù.
______________________________________________________________________
smbclient (À¯´Ð½º¸¦ À§ÇÑ »ï¹Ù Ŭ¶óÀ̾ðÆ®)
smbprint (»ï¹Ù È£½ºÆ®ÀÇ ÇÁ¸°ÅÍ¿¡ ÇÁ¸°Æ®¸¦ Çϱâ À§ÇÑ ½ºÅ©¸³Æ®)
smbprint.sysv (À§ smbprint¿Í °°Áö¸¸ SVR4 À¯´Ð½º¸¦ À§ÇÑ °ÍÀÌ´Ù)
smbstatus (ÇöÀçÀÇ »ï¹Ù ¿¬°á »óŸ¦ º¸¿©ÁØ´Ù)
smbrun (»ï¹Ù È£½ºÆ®ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ½ÇÇàÀ» ¿ëÀÌÇÏ°Ô ÇÏ´Â ½ºÅ©¸³Æ®)
______________________________________________________________________
Ãß°¡ÀûÀ¸·Î ÀÌ ¹®¼¿¡ Æ÷ÇԵǾîÀÖ´Â `print' ½ºÅ©¸³Æ®´Â smbprint ½ºÅ©¸³Æ®
ÀÛ¾÷À» ÁغñÇϴµ¥ À¯¿ëÇÏ´Ù.
»ï¹Ù ÆÐÅ°Áö´Â ¼³Ä¡ÇϱⰡ °£´ÜÇÏ´Ù. À§¿¡¼ ¾ð±ÞÇÑ »çÀÌÆ®¿¡¼ »ï¹Ù
¼Ò½º¸¦ ¾òÀº ´ÙÀ½¿¡ ¼Ò½º¿¡ Æ÷ÇÔµÈ README ÈÀÏÀ» Àо¾Æ¶ó. ¼Ò½º¿¡
doc/INSTALL.txtÈÀÏÀÌ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ÈÀÏ¿¡¼ ¼³Ä¡¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ
Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀνºÅçÀÌ µÇ¸é /usr/sbin ¾Æ·¡¿¡ µ¥¸ó, /usr/bin ¾Æ·¡¿¡ ½ÇÇàÈÀÏÀÌ
¼³Ä¡µÈ´Ù. ¸Å´º¾ó ÆäÀÌÁö´Â /usr/local/man¿¡ ¼³Ä¡µÈ´Ù.
»ï¹Ù ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÒ ¶§ Makefile¿¡¼ »ï¹Ù ¼³Á¤ÈÀÏÀÎ smb.conf ÈÀÏÀÇ
À§Ä¡¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. /etc ¾Æ·¡·Î ÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌÁö¸¸ ¿øÇÑ´Ù¸é ¾î¶²
°÷ÀÌµç °¡´ÉÇÏ´Ù. ¿©±â¿¡¼´Â »ï¹Ù¼³Á¤ÈÀÏÀ» /etc/smb.conf·Î, ·Î±×ÈÀÏÀÇ
À§Ä¡´Â log file = /var/log/samba-log.%m, Àá±Ý µð·ºÅ丮´Â lock
directory = /var/lock/samba·Î ÁöÁ¤ÇÑ °ÍÀ¸·Î °¡Á¤ÇÏ°í ¼³¸íÇÒ °ÍÀÌ´Ù.
smb.conf ¼³Á¤ÈÀÏÀ» ÀνºÅçÇÏÀÚ. ÀÌ¹Ì ¸¸µé¾îÁø »ï¹Ù µð·ºÅ丮·Î
À̵¿Ç϶ó. example/simple µð·ºÅ丮¸¦ »ìÆ캸°í README ÈÀÏÀ» Àоî
º¸¾Æ¶ó. smb.conf ÈÀÏÀ» /etc µð·ºÅ丮¿¡ º¹»çÇÑ´Ù. À̶§ ÁÖÀǸ¦ Çؾß
ÇÑ´Ù. ¸¸¾à ÀÌ¹Ì ½Ã½ºÅÛ¿¡ »ï¹Ù°¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é /etc ¾Æ·¡¿¡ »ï¹Ù¼³Á¤
ÈÀÏÀÌ ÀÖÀ» ÅÙµ¥ ±× ÈÀÏ·Î ½ÃÀÛÇϱ⸦ ±ÇÇÑ´Ù.
/etc ¾Æ·¡¿¡ ¼³Á¤ÈÀÏÀ» ¸¸µå´Â °ÍÀ» ¿øÇÏÁö ¾ÊÀ¸¸é ´Ù¸¥ °÷¿¡ ÀúÀåÀ» ÇÏ°í
/etc ¾Æ·¡¿¡ ´ÙÀ½°ú °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î¶ó.
______________________________________________________________________
ln -s /path/to/smb.conf /etc/smb.conf
______________________________________________________________________
4. µ¥¸ó ½ÇÇà½ÃÅ°±â
»ï¹ÙÀÇ µÎ µ¥¸óÀº /usr/sbin/smbd ¿Í /usr/sbin/nmbd ÀÌ´Ù. »ï¹Ù µ¥¸óÀº
inetd ¿¡ ÀÇÇؼ³ª µ¶¸³µÈ °úÁ¤À¸·Î ½ÇÇàµÇ¾îÁú ¼ö ÀÖ´Ù. ¿µ±¸ÀûÀÎ ÈÀÏ
¼¹ö·Î ¼³Ä¡¸¦ ÇÑ´Ù¸é, »ï¹Ù µ¥¸óÀÌ Áß´ÜµÇ¸é ´Ù½Ã ½ÇÇàµÉ ¼ö ÀÖµµ·Ï inetd
¿¡ ÀÇÇؼ ½ÇÇàµÉ °ÍÀÌ´Ù. »ï¹Ù ¼ºñ½º¸¦ °¡²û¾¿ »ç¿ëÇϰųª ´ÜÁö ½Ã½ºÅÛ
°ü¸®¿¡ ÀÌ¿ëÇϱâ À§Çؼ¶ó¸é /etc/rc.d/init.d ½ºÅ©¸³Æ®¿¡¼ ½ÇÇà½ÃÅ°°Å³ª
Á÷Á¢ ÇÊ¿ä¿¡ µû¶ó ¼öÀÛ¾÷À¸·Î ½ÇÇà½Ãų ¼ö ÀÖ´Ù.
inetd ¿¡ÀÇÇØ µ¥¸óÀ» ½ÇÇà½ÃÅ°±â À§Çؼ´Â ¾Æ·¡ ÁÙµéÀ» /etc/inetd.conf¿¡
Ãß°¡½ÃÄÑ¾ß ÇÑ´Ù.
______________________________________________________________________
# SAMBA NetBIOS services (for PC file and print sharing)
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
______________________________________________________________________
±× ´ÙÀ½¿¡ inetd µ¥¸óÀ» ´ÙÀ½°ú °°ÀÌ Àç½ÇÇà ½ÃŲ´Ù.
______________________________________________________________________
kill -HUP 1
______________________________________________________________________
½Ã½ºÅÛ Ãʱ⠽ÇÇà ½ºÅ©¸³Æ®¿¡¼ µ¥¸óÀ» ½ÇÇà½ÃÅ°±â À§Çؼ´Â ¾Æ·¡ÀÇ
½ºÅ©¸³Æ®¸¦ /etc/rc/d/init.d/smb ·Î ÀúÀåÀ» ÇÏ°í ÁÖ¼®¿¡ ³ª¿ÍÀִµ¥·Î
½Éº¼¸¯ ¸µÅ©¸¦ ÇؾßÇÑ´Ù.
______________________________________________________________________
#!/bin/sh
#
# /etc/rc.d/init.d/smb - »ï¹Ù ¼ºñ½º¸¦ ½ÃÀÛ, ÁßÁöÇÑ´Ù.
#
# ¾Æ·¡¿Í °°ÀÌ ÀÌ ÈÀÏÀ» ½Éº¼¸¯ ¸µÅ©¸¦ ½ÃŲ´Ù.
# symlinks: /etc/rc.d/rc1.d/K35smb (Kills SMB services on shutdown)
# /etc/rc.d/rc3.d/S91smb (Starts SMB services in multiuser mode)
# /etc/rc.d/rc6.d/K35smb (Kills SMB services on reboot)
#
# ÇÔ¼ö ¶óÀ̺귯¸® ¼Ò½º
. /etc/rc.d/init.d/functions
# ³×Æ®¿öÅ© ¼³Á¤ ¼Ò½º
. /etc/sysconfig/network
# ³×Æ®¿öÅ© °¡´É»óŸ¦ Á¡°ËÇÑ´Ù
[ ${NETWORKING} = "no" ] && exit 0
# ¼ºñ½º¸¦ ½ÃÀÛ ¶Ç´Â ÁßÁö½ÃŲ´Ù.
case "$1" in
start)
echo -n "Starting SMB services: "
daemon smbd -D
daemon nmbd -D
echo
touch /var/lock/subsys/smb
;;
stop)
echo -n "Shutting down SMB services: "
killproc smbd
killproc nmbd
rm -f /var/lock/subsys/smb
echo ""
;;
*)
echo "Usage: smb {start|stop}"
exit 1
esac
______________________________________________________________________
5. ÀϹÝÀûÀÎ ¼³Á¤(/etc/smb.conf)
¸®´ª½º(¶Ç´Â ´Ù¸¥ À¯´Ð½º ½Ã½ºÅÛ)¿¡¼ »ï¹Ù¼³Á¤Àº /etc/smb.conf ÈÀÏ¿¡
ÀÇÇؼ Á¦¾îµÈ´Ù. ÀÌ ¼³Á¤ÈÀÏÀº ¿ÜºÎ¿Í °øÀ¯½Ãų ½Ã½ºÅÛ ÀÚ¿ø°ú ¾î¶²
Á¦¾àÀ» µÑ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù.
ÀÌ Àý¿¡¼ ¸®´ª½º µå¶óÀ̺ê¿Í ÇÁ¸°Å͸¦ M$¿Í °øÀ¯½ÃÅ°´Â °ÍÀ» ¼³¸íÇÒ
°ÍÀÌ´Ù. À̹ø ÀýÀÇ smb.conf ÈÀÏÀº ´ÜÁö ¼Ò°³¸¦ À§ÇÑ °ÍÀ¸·Î¼ ¾ÆÁÖ
°£´ÜÇÏ´Ù. »ó¼¼ÇÑ °Íµé¿¡ ´ëÇØ ¹ú½áºÎÅÍ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÃßÈÄ Àý¿¡¼
Áß¿äÇÑ °³³äµéÀ» ¼Ò°³ÇÒ °ÍÀÌ´Ù.
°¢ ¿µ¿ªÀº global, homes, printer, µîÀ¸·Î ¸»¸Ó¸®°¡ ½ÃÀ۵ȴÙ.
global ¿µ¿ª¿¡¼´Â »ï¹Ù°¡ ¸ðµç ÀÚ¿øµéÀÇ °øÀ¯¸¦ Á¤ÀÇÇϴµ¥ »ç¿ëÇÏ´Â ¸î¸î
º¯¼öµéÀ» Á¤ÀÇÇÑ´Ù.
homes ¿µ¿ª¿¡¼´Â »ç¿ëÀÚ°¡ ¿ø°ÝÀ¸·Î ¸®´ª½ºÀÇ »ç¿ëÀÚ È¨ µð·ºÅ丮·Î
Á¢¼ÓÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. ´Ü, »ç¿ëÀÚ´Â ÀÚ½ÅÀÇ È¨ µð·ºÅ丮 Á¢¼Ó¸¸À»
Çã¿ëÇÑ´Ù. Áï, M$ÀÇ »ç¿ëÀÚ°¡ M$·ÎºÎÅÍ ¸®´ª½ºÀÇ °øÀ¯ µå¶óÀ̺ê·Î Á¢¼ÓÀ»
½ÃµµÇÑ´Ù¸é, ¿ÀÁ÷ »ç¿ëÀÚ °³ÀÎÀÇ È¨ µð·ºÅ丮¸¸ÀÌ Á¢¼ÓÀÌ °¡´ÉÇÏ´Ù. À̶§
Áß¿äÇÑ °ÍÀº »ç¿ëÀÚ´Â ¸®´ª½º¿¡ °èÁ¤À» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù.
¾Æ·¡ÀÇ smb.conf ¿¹Á¦ ÈÀÏÀº »ç¿ëÀÚ°¡ ·ÎÄà ÄÄÇ»ÅÍÀÇ °³ÀΠȨ µð·ºÅ丮
Á¢¼Ó°ú Àӽà µð·ºÅ丮 »ý¼ºÀ» Çã¶ôÇÑ´Ù. M$ »ç¿ëÀÚ°¡ ÀÌµé °øÀ¯¸¦ º¼ ¼ö
ÀÖ±âÀ§Çؼ´Â ¸®´ª½º°¡ ·ÎÄà ³×Æ®¿öÅ© »ó¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯¸é »ç¿ëÀÚ´Â
À©µµ¿ìÁî ÈÀÏ ¸Å´ÏÀú³ª Ž»ö±âÀÇ ³×Æ®¿öÅ© µå¶óÀ̺ê·Î °£´ÜÈ÷ ¿¬°áÇÒ ¼ö
ÀÖ´Ù.
´õ ¸¹Àº ÀÚ¿øµéÀ» °øÀ¯½ÃÅ°±â À§ÇÑ Ãß°¡ÀûÀÎ Ç׸ñµéÀ» ´ÙÀ½ Àý¿¡¼
¼³¸íÇÑ´Ù.
______________________________________________________________________
; /etc/smb.conf
;
; ÀÌ ÈÀÏÀ» ¼öÁ¤ÇÑ µÚ¿¡ ¼ºñ½º¸¦ ²À Àç½ÇÇàÇÑ´Ù. ¿¹:
; /etc/rc.d/init.d/smb stop
; /etc/rc.d/init.d/smb start
[global]
; guest °èÁ¤À» Çã¿ëÇÏ·Á¸é ¾Æ·¡ ÁÖ¼® ±âÈ£¸¦ »èÁ¦ÇÑ´Ù.
; guest account = nobody
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
share modes = yes
[homes]
comment = Home Directories
browseable = no
read only = no
create mode = 0750
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
______________________________________________________________________
6. ¸®´ª½º µå¶óÀ̺긦 M$¿Í °øÀ¯½ÃÅ°±â
¾ÕÀÇ °£´ÜÇÑ smb.conf¿¡¼¿Í °°ÀÌ M$ »ç¿ëÀÚ¿¡°Ô ¸®´ª½º µå¶óÀ̺긦
°øÀ¯½ÃÅ°±â´Â ½±´Ù. ¾î¶µç, »ï¹ÙÀÇ ¿©·¯ °¡Áö ÀÚ¿øÀ» °ü¸®ÇÏ´Â ¹æ¹ýµéÀ»
¸î°¡Áö ¿¹¸¦ µé¾î ¼³¸íÇÏ°Ú´Ù.
µð·ºÅ丮¸¦ °ø¿ëÀ¸·Î °øÀ¯½ÃÅ°±â À§Çؼ´Â ¾ÕÀÇ smb.confÈÀÏ tmp ¿µ¿ªÀ»
º¹»çÇؼ ¾Æ·¡¿Í °°ÀÌ ¹Ù²Û ´ÙÀ½ ÈÀÏ¿¡ Ãß°¡ÇÑ´Ù.
______________________________________________________________________
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = yes
______________________________________________________________________
À§ÀÇ µð·ºÅ丮¸¦ staff ±×·ì¿¡ ¼ÓÇÑ »ç¿ëÀÚ¿¡°Ô¸¸ ¾²±â ±ÇÇÑÀ» ÁÖ°í ±×¿Ü
ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô´Â Àб⠱ÇÇÑ ¸¸À» ÁÖ±âÀ§Çؼ´Â ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ÇÑ´Ù.
______________________________________________________________________
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
write list = @staff
______________________________________________________________________
µå¶óÀÌºê °øÀ¯¿¡ ´ëÇÑ ¶Ç´Ù¸¥ ¹æ¹ýµéÀº »ï¹Ù ¹®¼³ª ¸Å´º¾ó ÆäÀÌÁö¸¦ º¸±â
¹Ù¶õ´Ù.
7. M$ÀÇ µå¶óÀ̺긦 ¸®´ª½º¿Í °øÀ¯½ÃÅ°±â
À¯´Ð½º¸¦ À§ÇÑ »ï¹Ù Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥Àº »ï¹Ù ¼Ò½º¿¡ Æ÷ÇԵǾî ÀÖ´Ù.
ÀÌ °ÍÀº ÄÚ¸Çµå ¶óÀο¡¼ ftp¿Í °°Àº ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. ÀÌ°ÍÀ» M$
¼¹ö¿Í ¸®´ª½º Ŭ¶óÀ̾ðÆ® °£¿¡ ÈÀÏ Àü¼Û À¯Æ¿¸®Æ¼·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¿øÇϴ ȣ½ºÆ®ÀÇ »ç¿ë°¡´ÉÇÑ °øÀ¯¸¦ È®ÀÎÇϱâ À§Çؼ´Â ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇØ
º¸¾Æ¶ó.
______________________________________________________________________
/usr/sbin/smbclient -L host
______________________________________________________________________
`host'´Â »ìÆ캸±â¸¦ ¿øÇÏ´Â ÄÄÇ»ÅÍÀÇ À̸§ÀÌ´Ù. ÀÌ ¸í·ÉÀº »ç¿ë °¡´ÉÇÑ
`¼ºñ½º'ÀÇ À̸§À» º¸¿©ÁÙ °ÍÀÌ´Ù. Áï, °øÀ¯ÇÒ ¼ö ÀÖ´Â µå¶óÀ̺곪
ÇÁ¸°ÅÍÀÇ À̸§µéÀ» º¸¿©ÁØ´Ù. »ï¹Ù ¼¹ö°¡ ¾ÏÈ£ ¼³Á¤ÀÌ µÇ¾îÀÖ´Ù¸é ¾ÏÈ£¸¦
¹°¾îº¼ °ÍÀÌ´Ù. ¼¹öÀÇ `guest' °èÁ¤À̳ª »ç¿ëÀÚ °èÁ¤ÀÇ ¾ÏÈ£¸¦ ¾Ë°í
ÀÖ¾î¾ß ÇÑ´Ù.
¿¹:
______________________________________________________________________
smbclient -L zimmerman
______________________________________________________________________
ÀÌ ¸í·ÉÀÇ °á°ú´Â ´ÙÀ½ ó·³ ³ªÅ¸³¯ °ÍÀÌ´Ù.
______________________________________________________________________
Server time is Sat Aug 10 15:58:27 1996
Timezone is UTC+10.0
Password:
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
public Disk Public
C$ Disk Default share
IPC$ IPC Remote IPC
OReilly Printer OReilly
print$ Disk Printer Drivers
ÀÌ ÄÄÇ»ÅÍ´Â ´ÙÀ½°ú °°Àº ºê¶ó¿ìÁî(browse) ¸ñ·ÏÀ» °¡Áö°í ÀÖ´Ù.
Server Comment
--------- -------
HOPPER Samba 1.9.15p8
KERNIGAN Samba 1.9.15p8
LOVELACE Samba 1.9.15p8
RITCHIE Samba 1.9.15p8
ZIMMERMAN
______________________________________________________________________
ÀÌ ºê¶ó¿ìÁî ¸ñ·ÏÀº ¿¬°áµÈ ³×Æ®¿÷ »ó¿¡ °øÀ¯µÈ ÀÚ¿øÀ» °¡Áø »ï¹Ù ¼¹öµéÀ»
º¸¿©ÁØ´Ù.
Ŭ¶óÀ̾ðÆ®¸¦ »ç¿ëÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
______________________________________________________________________
/usr/sbin/smbclient service
______________________________________________________________________
`service'´Â ÄÄÇ»ÅÍ¿Í °øÀ¯¸íÀÌ´Ù. ¿¹¸¦ µé¾î `zimmerman' ÄÄÇ»ÅÍÀÇ
`public'À¸·Î °øÀ¯µÈ µð·ºÅ丮¸¦ »ç¿ëÇϱâ À§Çؼ´Â, service°¡
\\zimmerman\public À¸·Î µÈ´Ù. ±×·±µ¥ ½©ÀÇ Á¦¾à¶§¹®¿¡ ¿ª½½·¡½¬ »ç¿ë¿¡
¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. ±×·¡¼ ´ÙÀ½°ú °°ÀÌ ÇØ¾ß ÇÑ´Ù.
______________________________________________________________________
/usr/sbin/smbclient \\\\zimmerman\\public mypasswd
______________________________________________________________________
`mypasswd'´Â ÀÚ½ÅÀÇ ¾ÏÈ£ÀÌ´Ù.
¼º°øÇÏ¸é ´ÙÀ½°ú °°Àº smbclient ÇÁ·ÒÇÁÆ®°¡ ³ªÅ¸³´Ù.
______________________________________________________________________
Server time is Sat Aug 10 15:58:44 1996
Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
smb: \>
______________________________________________________________________
`h'¸¦ Ä¡¸é smbclient µµ¿ò¸»À» º¼ ¼ö ÀÖ´Ù.
______________________________________________________________________
smb: \> h
ls dir lcd cd pwd
get mget put mput rename
more mask del rm mkdir
md rmdir rd prompt recurse
translate lowercase print printmode queue
cancel stat quit q exit
newer archive tar blocksize tarmode
setmode help ? !
smb: \>
______________________________________________________________________
¸¸¾à ftp¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ¶ó¸é ¾î·Á¿ò¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
8. ¸®´ª½º ÇÁ¸°ÅÍ¿Í M$ °øÀ¯½ÃÅ°±â
¸®´ª½ºÀÇ ÇÁ¸°Å͸¦ M$¿Í °øÀ¯½ÃÅ°±â À§Çؼ´Â ÇÁ¸°ÅÍ°¡ ¸®´ª½º¿¡¼
ÀÛµ¿µÇµµ·Ï ¼³Á¤ÀÌ µÇ¾îÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀº ´ç¿¬ÇÑ °ÍÀÌ´Ù. ¸®´ª½º¿¡¼
ÇÁ¸°Æ®°¡ °¡´ÉÇÏ´Ù¸é »ï¹Ù °øÀ¯¸¦ ¼³Á¤ÇÏ´Â °ÍÀº °£´ÜÇÑ ÀÏÀÌ´Ù.
·ÎÄà ÇÁ¸°Æ®¸¦ ¼³Á¤ÇÏ´Â ºÎºÐ¿¡ ´ëÇؼ´Â Printing HOWTO ¹®¼¸¦
Âü°íÇϱ⸦ ¹Ù¶õ´Ù.
ÀÌ ¹®¼ÀÇ ÀúÀÚ´Â M$ NT¿¡ ¿¬°áµÈ ÇÁ¸°Å͸¦ »ç¿ëÇϱ⠶§¹®¿¡ ÀÌ ºÎºÐÀ»
¿ÏÀüÇÑ °ÍÀ¸·Î »ý°¢ÇÏÁö ¸»°í, ´ÜÁö Á¦¾ÈÇÏ´Â Á¤µµ·Î »ý°¢Çϱ⠹ٶõ´Ù.
¸¸¾à ¸®´ª½º ÇÁ¸°ÅÍ¿Í M$¸¦ °øÀ¯½ÃÅ°´Â ÀÚ¼¼ÇÑ ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù¸é ¸ÞÀÏ
dwood@plugged.net.au À» º¸³»Áֱ⠹ٶõ´Ù. ±×°ÍÀ» Âü°í·ÎÇؼ ÀÌ ºÎºÐÀÌ
¿Ïº®ÇÏ°Ô µÉ ¼ö ÀÖ´Ù.
smb.conf¿¡ ÇÁ¸°Æ® ¼³Á¤À» Ãß°¡ÇÑ´Ù.
______________________________________________________________________
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
[printers]
comment = All Printers
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
[ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
______________________________________________________________________
ÇÁ¸°ÅÍÀÇ °æ·Î(ÀÌ °æ¿ì¿£ ljetÀÇ path)¸¦ /etc/printcap¿¡ Á¤ÀǵÈ
½ºÇ®µð·ºÅ丮¿Í ÀÏÄ¡½ÃÅ°´Â °ÍÀ» ÀØÁö¸»¾Æ¶ó.
ÁÖÀÇ: »ï¹Ù¸¦ ÀÌ¿ëÇØ À¯´Ð½º¿¡ ¿¬°áµÈ ÇÁ¸°ÅÍ¿Í M$ NT¸¦ °øÀ¯½ÃÅ°´Â °Í¿¡´Â
¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. ¹®Á¦ÀÇ Çϳª´Â °øÀ¯µÈ ÇÁ¸°Å͸¦ NT°¡ ÀûÀýÇÏ°Ô ÀνÄÇÒ
¼ö ÀÖ´À³Ä¿¡ ´ëÇÑ °ÍÀÌ´Ù. ÀÌ ¹®Á¦¸¦ °íÄ¡±â À§Çؼ´Â »ï¹Ù ¼Ò½º¿¡
Æ÷ÇԵǾî ÀÖ´Â docs/WinNT.txt ¹®¼¸¦ º¸±â ¹Ù¶õ´Ù. ¶Ç´Ù¸¥ ¹®Á¦´Â ¾ÏÈ£¸¦
ó¸®ÇÏ´Â ¹®Á¦ÀÌ´Ù. À§ÀÇ ¹®¼¸¦ »ìÆ캸¸é ÀÌ ¹®Á¦ÀÇ ¼öÁ¤¿¡ ½ÇÆÐÇÑ °ÍÀ»
ÀÌÇØÇϱ⠾î·Æ°Ô ½á³õ¾Ò´Ù.
9. M$ÀÇ ÇÁ¸°Å͸¦ ¸®´ª½º¿Í °øÀ¯Çϱâ
M$ÀÇ ÇÁ¸°Å͸¦ °øÀ¯Çϱâ À§Çؼ´Â ¾Æ·¡ÀÇ ÀÛ¾÷À» ²À Çؾ߸¸ ÇÑ´Ù.
a) /etc/printcap ÈÀÏ¿¡ ·ÎÄà µð·ºÅ丮 ±¸Á¶(½ºÇ®µð·ºÅ丮 µî)¿Í Á¤È®È÷
ÀÏÄ¡ÇÏ´Â Àû´çÇÑ »çÇ×µéÀÌ ÀÖ¾î¾ß ÇÑ´Ù.
b) /usr/bin/smbprint ÈÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ ÈÀÏÀº »ï¹Ù ¼Ò½º¿¡ °°ÀÌ
Æ÷ÇԵǾî Àִµ¥, »ï¹Ù ½ÇÇà ÈÀϸ¸ÀÌ µé¾îÀÖ´Â ¹èÆ÷º»¿¡´Â ºüÁ®ÀÖÀ» ¼ö
ÀÖ´Ù. ÀÌ ÈÀÏÀ» ¾à°£ ¼öÁ¤ÇÑ °ÍÀÌ ¾Æ·¡¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
c) ¸¸¾à ¾Æ½ºÅ° ÈÀÏÀ» Æ÷½ºÆ®½ºÅ©¸³Æ® ÈÀÏ·Î º¯È¯Çϱâ À§Çؼ´Â
nenscript³ª ±×¿Í °°Àº ¿ªÇÒÀ» ÇÏ´Â °ÍÀ» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù.
nenscript´Â Æ÷½ºÆ®½ºÅ©¸³Æ® º¯È¯±âÀÌ°í º¸ÅëÀº /usr/bin ¾Æ·¡¿¡ ¼³Ä¡µÈ´Ù.
d) »ï¹Ù·Î ÇÁ¸°ÆÃÇÒ¶§ »ç¿ëÇϱâ ÆíÇÑ µµ±¸¸¦ ÀÌ¿ëÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù.
¾Æ½ºÅ° ÈÀÏ, Æ÷½ºÆ®½ºÅ©¸³Æ® ÈÀÏÀ» ó¸®ÇØÁÖ´Â, ¶Ç´Â Æ÷½ºÆ®½ºÅ©¸³Æ®
ÈÀÏÀ» »ý¼ºÇØÁÖ´Â ÆÞ ½ºÅ©¸³Æ®°¡ ¾Æ·¡¿¡ ÁÖ¾îÁ® ÀÖ´Ù.
M$ NT È£½ºÆ®ÀÇ HP 5MP ÇÁ¸°Å͸¦ À§ÇÑ /etc/printcap ÈÀÏÀÇ ¼³Á¤ÀÌ ¾Æ·¡¿¡
ÁÖ¾îÁ® ÀÖ´Ù. °¢ Ç׸ñµéÀº ´ÙÀ½ÀÇ Àǹ̰¡ ÀÖ´Ù
______________________________________________________________________
cm - ÁÖ¼®(ÇÁ¸°ÅÍ ¼³¸í)
lp - Ãâ·ÂÀ» À§ÇÑ ÀåÄ¡¸í
sd - ·ÎÄà ÄÄÇ»ÅÍÀÇ ÇÁ¸°ÅÍ ½ºÇ® µð·ºÅ丮
af - the accounting file
mx - ÃÖ´ë ÈÀÏ Å©±â( 0Àº Á¦ÇÑÀÌ ¾øÀ½À» ¶æÇÑ´Ù)
if - ÀÔ·Â ÇÊÅÍ(½ºÅ©¸³Æ®)ÀÇ À̸§
______________________________________________________________________
´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϸé Printing HOWTO³ª printcapÀÇ ¸Å´º¾óÀ» º¸±â ¹Ù¶õ´Ù
______________________________________________________________________
# /etc/printcap
#
# //zimmerman/oreilly via smbprint
#
lp:\
:cm=HP 5MP Postscript OReilly on zimmerman:\
:lp=/dev/lp1:\
:sd=/var/spool/lpd/lp:\
:af=/var/spool/lpd/lp/acct:\
:mx#0:\
:if=/usr/bin/smbprint:
______________________________________________________________________
½ºÇ® µð·ºÅ丮¿Í accounting µð·ºÅ丮°¡ Á¸ÀçÇÏ°í ¾²±â°¡´É ¸ðµå·Î ¼³Á¤À»
ÇØÁÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ 'if' ÁÙ¿¡ smbprint ½ºÅ©¸³Æ®(¾Æ·¡¿¡ ÁÖ¾îÁø)ÀÇ
Á¤È®ÇÑ °æ·Î°¡ ÀûÇôÀÖ´ÂÁö, ÀûÀýÇÑ ÀåÄ¡¸¦ °¡¸®Å°°í ÀÖ´ÂÁö(/dev ¾Æ·¡ÀÇ
Ưº° ÈÀÏ)¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
´ÙÀ½À¸·Î smbprint ½ºÅ©¸³Æ®¿¡´ëÇÑ ¼³¸íÀÌ´Ù. ½ºÅ©¸³Æ®´Â ´ë°³ /usr/bin
¾Æ·¡¿¡ À§Ä¡ÇÏ°í, »ï¹Ù¸¦ ¸¸µç»ç¶÷À¸·Î ¿©°ÜÁö´Â Andrew Tridgell¿¡ ÀÇÇÑ
°ÍÀÌ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â »ï¹Ù¼Ò½º ¹èÆ÷º»¿¡´Â Æ÷ÇԵǾîÀÖÁö¸¸ ½ÇÇàÈÀÏ
¹èÆ÷º»¿¡´Â µé¾îÀÖÁö ¾Ê´Ù. ±×·¡¼ ¿©±â¿¡¼ ´Ù½Ã ¸¸µé¾î º¼ °ÍÀÌ´Ù.
ÀÌ ½ºÅ©¸³Æ®¸¦ ÁÖÀDZí°Ô »ìÆ캼 °ÍÀ¸·Î ¿©°ÜÁö´Âµ¥, ÀÌ ½ºÅ©¸³Æ®¸¦ ±×³É
±×´ë·Î »ç¿ëÇÏ´Â °Íº¸´Ù´Â ÀÚ½ÅÀÇ È¯°æ¿¡ ¾Ë¸Â°Ô ¼öÁ¤ÇÏ´Â °ÍÀÌ ´õ
¹Ù¶÷Á÷ÇÏ°í À¯¿ëÇÏ´Ù.
______________________________________________________________________
#!/bin/sh -x
# ÀÌ ½ºÅ©¸³Æ®´Â À¯´Ð½º »ó¿¡¼ printcap ÇÁ¸°ÆÃÀ» À§ÇÑ ÀÔ·Â ÇÊÅÍÀÌ´Ù.
# ÀÌ°ÍÀº ÁöÁ¤µÈ »ï¹Ù ¼¹ö¿Í ¼ºñ½º¿¡ ÈÀÏÀ» ÇÁ¸°Æ®Çϱâ À§ÇÑ smbclient
# ÇÁ·Î±×·¥À» ÀÌ¿ëÇÑ´Ù.
# ¿¹¸¦ µé¾î printcap ¼³Á¤À» ¾Æ·¡Ã³·³ ÇÒ ¼ö ÀÖ´Ù
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
# À§ÀÇ ¼³Á¤Àº ÀÌ ½ºÅ©¸³Æ®¸¦ ÅëÇØ ÇÁ¸°Æ®ÇÏ´Â "smb" ¶ó´Â À¯´Ð½º ÇÁ¸°Å͸¦
# ¸¸µç´Ù. ¶ÇÇÑ ÀûÀýÇÑ ±ÇÇÑ°ú ¼ÒÀ¯±ÇÀ» °¡Áø /usr/spool/smb ½ºÇ®µð·ºÅ丮¸¦
# ¸¸µé¾î¾ß ÇÑ´Ù.
#
# ½ºÅ©¸³Æ®´Â hamiltom@ecnz.co.nz (Michael Hamilton)¿¡ ÀÇÇؼ ¼¹ö, ¼ºñ½º
# ±×¸®°í ¾ÏÈ£¸¦ /usr/var/spool/lpd/PRINTNAME/.config ÈÀÏ¿¡¼ ÀÐÀ» ¼ö
# ÀÖµµ·Ï ¹Ù²î¾îÁ³´Ù.
#
# ÀÌ°ÍÀ» °¡´ÉÇÏ°Ô Çϱâ À§Çؼ´Â /etc/printcap¿¡ accounting ÈÀÏ(af=...)ÀÌ ²À
# Æ÷ÇԵǾî¾ß¸¸ ÇÑ´Ù.
#
# cdcolour:\
# :cm=CD IBM Colorjet on 6th:\
# :sd=/var/spool/lpd/cdcolour:\
# :af=/var/spool/lpd/cdcolour/acct:\
# :if=/usr/local/etc/smbprint:\
# :mx=0:\
# :lp=/dev/null:
#
# /usr/var/spool/lpd/PRINTNAME/.config ÈÀÏ¿¡ ´ÙÀ½ »çÇ×µéÀ» Æ÷ÇÔÇÑ´Ù:
# server=PC_SERVER
# service=PR_SHARENAME
# password="password"
#
# E.g.
# server=PAULS_PC
# service=CJET_371
# password=""
#
# Debugging log file, ¿øÇÑ´Ù¸é /dev/null·Î ¹Ù²ãµµ µÈ´Ù.
#
logfile=/tmp/smb-print.log
# logfile=/dev/null
#
# ÇÊÅÍÀÇ ¸¶Áö¸· ÆĶó¹ÌÅÍ´Â accounting ÈÀÏ À̸§ÀÌ´Ù.
#
spool_dir=/var/spool/lpd/lp
config_file=$spool_dir/.config
# config ÈÀÏ¿¡¼ ´ÙÀ½ º¯¼ö ¼³Á¤À» ÀÐ¾î µéÀδÙ.
# server
# service
# password
# user
eval `cat $config_file`
#
# Some debugging help, change the >> to > if you want to same space.
#
echo "server $server, service $service" >> $logfile
(
# ÁÖÀÇ: ÇÁ¸°Æ®½Ã¿¡ ÀÚµ¿À¸·Î CR/LF º¯È¯À» °¡´ÉÇÏ°Ô ÇÏ·Á¸é `echo translate'¸¦
# Ãß°¡ÇÑ´Ù.
echo translate
echo "print -"
cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> $logfile
______________________________________________________________________
´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆÇÀº ¾Æ½ºÅ° ¹®¼¸¦ Æ÷½ºÆ®½ºÅ©¸³Æ®·Î º¯È¯ÇØÁÖ´Â
nenscript¸¦ °¡Áö°í ÀÖ´Ù. ´ÙÀ½ perl ½ºÅ©¸³Æ®´Â smbprint¸¦ ÅëÇØ
¸®´ª½º¿¡¼ ÇÁ¸°Æ®ÇÏ´Â °ÍÀ» ¾ÆÁÖ ½±°Ô ÇØÁØ´Ù.
______________________________________________________________________
Usage: print [-a|c|p]
-a prints as ASCII
-c prints formatted as source code
-p prints as Postscript
If no switch is given, print attempts to
guess the file type and print appropriately.
______________________________________________________________________
¾Æ½ºÅ° ÈÀÏÀ» ÇÁ¸°Æ®Çϱâ À§Çؼ smbprint¸¦ ÀÌ¿ëÇÒ¶§ ±ä ÁÙÀº À߸®´Â
°æ¿ì°¡ ÀÖ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â °¡´ÉÇÏ´Ù¸é ±ä ÁÙÀÌ ´Ü¾î Áß°£ÀÌ À߸®´Â
´ë½Å¿¡ °ø¹é¿¡¼ À߸®µµ·Ï ÇØÁØ´Ù.
nenscript´Â ¼Ò½ºÄڵ忡 Çü½ÄÀ» ÁØ´Ù. Àå½ÄÀûÀÎ ¸Ó¸´¸»(³¯Â¥, ÈÀÏÀ̸§
µî)À» Ãß°¡ÇÏ¿© ¾Æ½ºÅ° ÈÀÏ°ú Çü½ÄÀ» »ý¼ºÇÑ´Ù. ¶ÇÇÑ, ÁÙ¹øÈ£¸¦ ¸Å±ä´Ù.
¾Æ·¡ ¿¹¸¦ ÀÌ¿ëÇÏ¿© ´Ù¸¥ ¸ð¾çÀÇ Çü½Äµµ °¡´ÉÇÏ´Ù.
Æ÷½ºÆ®½ºÅ©¸³Æ® ¹®¼´Â ÀÌ¹Ì ÀûÀýÇÑ Çü½ÄÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î Á÷Á¢ Ãâ·ÂÀÌ
µÈ´Ù.
______________________________________________________________________
#!/usr/bin/perl
# Script: print
# Authors: Brad Marshall, David Wood
# Plugged In Communications
# Date: 960808
#
# Script to print to oreilly which is currently on zimmerman
# ¸ñÀû: ¿©·¯°¡Áö Çü½ÄÀÇ ÈÀϵéÀ» ÀÎÀڷμ ¹Þ¾Æµé¿© »ï¹Ù ÇÁ¸°Æ® ½ºÅ©¸³Æ®¿¡
# ÆÄÀÌÇÁ·Î º¸³»´Âµ¥ Àû´çÇÏ°Ô Ã³¸®¸¦ ÇÑ´Ù.
#
# °¡´ÉÇÑ ÈÀÏ Çü½Ä:
#
# ASCII - $line_length º¸´Ù ´õ ±ä ±ÛÀÚµéÀ» °ø¹éÀ¸·Î ÁÙ ±æÀ̸¦ Á¶Á¤ÇÑ´Ù.
# Postscript - ¾Æ¹«·± 󸮵µ ÇÏÁö ¾Ê´Â´Ù.
# Code - Àû´çÇÏ°Ô(Ãâ·Â¹æÇâ, ±ÛÀÚ¸ð¾ç µî) Ãâ·ÂÇϱâ À§Çؼ nenscript¸¦
# ÀÌ¿ëÇÏ¿© Æ÷½ºÆ®½ºÅ©¸³Æ® ¹®¼·Î ¸¸µç´Ù.
#
# ¾Æ½ºÅ° ÅؽºÆ® ¹®¼¿¡¼ ÇÑ ÁÙ´ç ÃÖ´ë ±ÛÀÚ¼ö.
$line_length = 76;
# »ï¹Ù ÇÁ¸°Æ® ½ºÅ©¸³Æ®ÀÇ °æ·Î¿Í À̸§.
$print_prog = "/usr/bin/smbprint";
# nenscriptÀÇ °æ·Î¿Í À̸§(¾Æ½ºÅ°-->Æ÷½ºÆ®½ºÅ©¸³Æ® º¯È¯±â)
$nenscript = "/usr/bin/nenscript";
unless ( -f $print_prog ) {
die "Can't find $print_prog!";
}
unless ( -f $nenscript ) {
die "Can't find $nenscript!";
}
&ParseCmdLine(@ARGV);
# DBG
print "filetype is $filetype\n";
if ($filetype eq "ASCII") {
&wrap($line_length);
} elsif ($filetype eq "code") {
&codeformat;
} elsif ($filetype eq "ps") {
&createarray;
} else {
print "Sorry..no known file type.\n";
exit 0;
}
# smbprint·Î °¢ ÁÙµéÀ» ¿¬°á(Ãâ·Â)½ÃŲ´Ù.
open(PRINTER, "|$print_prog") || die "Can't open $print_prog: $!\n";
foreach $line (@newlines) {
print PRINTER $line;
}
# ÈÀÏÀÇ ¸¶Áö¸· ÁÙÀÌ Á¦´ë·Î ³¡³ªÁö ¾ÊÀº °æ¿ì¿¡ ÁٹٲÞ(¶óÀÎÇǵå)¸¦ Ãß°¡ÇÑ´Ù.
print PRINTER "\n";
close(PRINTER);
print "Completed\n";
exit 0;
# --------------------------------------------------- #
# Everything below here is a subroutine #
# --------------------------------------------------- #
sub ParseCmdLine {
# ÄÚ¸Çµå ¶óÀÎÀ» ºÐ¼®Çؼ ÈÀÏÀÇ Çü½ÄÀÌ ¹«¾ùÀÎÁö ã¾Æ³½´Ù.
# $arg¿Í $file ÀÌ ÀÖ´Ù¸é °ªÀ» ¾ò´Â´Ù.
# and the filename
if ($#_ < 0) {
&usage;
}
# DBG
# foreach $element (@_) {
# print "*$element* \n";
# }
$arg = shift(@_);
if ($arg =~ /\-./) {
$cmd = $arg;
# DBG
# print "\$cmd found.\n";
$file = shift(@_);
} else {
$file = $arg;
}
# ÈÀÏ Çü½ÄÀ» Á¤ÀÇÇÑ´Ù.
unless ($cmd) {
# ¾Æ¹«·± ÀÎÀÚ°¡ ¾øÀ» °æ¿ì.
if ($file =~ /\.ps$/) {
$filetype = "ps";
} elsif ($file =~ /\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/) {
$filetype = "code";
} else {
$filetype = "ASCII";
}
# $fileÀÇ ÈÀÏÇü½ÄÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æ³»¼ $filetypeÀ» ³Ñ°ÜÁØ´Ù.
} else {
# We have what type it is in $arg
if ($cmd =~ /^-p$/) {
$filetype = "ps";
} elsif ($cmd =~ /^-c$/) {
$filetype = "code";
} elsif ($cmd =~ /^-a$/) {
$filetype = "ASCII"
}
}
}
sub usage {
print "
Usage: print [-a|c|p]
-a prints as ASCII
-c prints formatted as source code
-p prints as Postscript
If no switch is given, print attempts to
guess the file type and print appropriately.\n
";
exit(0);
}
sub wrap {
# ÁÙ±æÀÌ°¡ ÁöÁ¤µÈ ±ÛÀÚ¼öº¸´Ù Àûµµ·Ï ÈÀÏÀÇ °¢ ÁÙÀ» ¹è¿¿¡ ÇÒ´çÇÑ´Ù.
# °ø¹éÀ» ÀÌ¿ëÇØ ÁÙ±æÀ̸¦ Á¶Á¤ÇÑ´Ù.
# ÁÙ±æÀ̸¦ Á¦ÇÑÇÒ ±ÛÀÚ¼öÀÇ °ªÀ» ¾ò´Â´Ù.
$limit = pop(@_);
# DBG
#print "Entering subroutine wrap\n";
#print "The line length limit is $limit\n";
# ÈÀÏÀ» Àоîµé¿© ºÐ¼®ÇÏ°í °¢ ÁÙÀ» ¹è¿¿¡ ÇÒ´çÇÑ´Ù.
open(FILE, "<$file") || die "Can't open $file: $!\n";
while() {
$line = $_;
# DBG
#print "The line is:\n$line\n";
# Á¦ÇѱæÀ̺¸´Ù ±ä ÁÙÀº ±æÀ̸¦ Á¶Á¤ÇÑ´Ù.
while ( length($line) > $limit ) {
# DBG
#print "Wrapping...";
# $limit +1 ±îÁöÀÇ ±ÛÀÚµéÀ» ¾ò´Â´Ù.
$part = substr($line,0,$limit +1);
# DBG
#print "The partial line is:\n$part\n";
# ¸¶Áö¸· ¹®ÀÚ°¡ °ø¹éÀÎÁö ¾Æ´ÑÁö¸¦ Á¶»çÇÑ´Ù.
$last_char = substr($part,-1, 1);
if ( " " eq $last_char ) {
# °ø¹éÀ̶ó¸é ±×´ë·Î Ãâ·ÂÇÑ´Ù.
# DBG
#print "The last character was a space\n";
substr($line,0,$limit + 1) = "";
substr($part,-1,1) = "";
push(@newlines,"$part\n");
} else {
# °ø¹éÀÌ ¾Æ´Ï¶ó¸é ¸¶Áö¸· °ø¹éÀÇ À§Ä¡¸¦
# ã°í ±×°÷±îÁö Ãâ·ÂÇÑ´Ù.
# DBG
#print "The last character was not a space\n";
# $limit ÀÌÀüÀÇ ±ÛÀÚ¸¦ Áö¿î´Ù.
substr($part,-1,1) = "";
# ¸¶Áö¸· °ø¹éÀ» ã±â ½±°Ô ÁÙÀ» µÚÁý´Â´Ù.
$revpart = reverse($part);
$index = index($revpart," ");
if ( $index > 0 ) {
substr($line,0,$limit-$index) = "";
push(@newlines,substr($part,0,$limit-$index)
. "\n");
} else {
# °ø¹éÀ» Æ÷ÇÔÇÏÁö ¾ÊÀº ÁÙÀ̶ó¸é
# $limit ±îÁö Ãâ·ÂÀ» ÇÑ´Ù.
substr($line,0,$limit) = "";
push(@newlines,substr($part,0,$limit)
. "\n");
}
}
}
push(@newlines,$line);
}
close(FILE);
}
sub codeformat {
# ¼ºê·çƾ wrap¸¦ È£ÃâÇؼ nenscript¸¦ ÅëÇÑ ÇÊÅ͸µÀ» ÇÑ´Ù.
&wrap($line_length);
# ¼Ò½º Äڵ带 ÇÁ¸°Æ®Çϱâ À§ÇØ ¸î°¡Áö ¾Ë¸ÂÀº Çü½Äµé(¿ëÁö¹æÇâ,
# Courier font, ÁÙ¹øÈ£)À» Æ÷ÇÔ½ÃŲ Æ÷½ºÆ®½ºÅ©¸³Æ® ÈÀÏÀ» »ý¼º
# Çϱâ À§Çؼ nenscriptÀÇ °á°ú¸¦ ó¸®ÇÑ´Ù.
# ù¹ø°·Î ÀÓ½ÃÈÀÏ·Î Ãâ·ÂÇÑ´Ù.
$tmpfile = "/tmp/nenscript$$";
open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") ||
die "Can't open nenscript: $!\n";
foreach $line (@newlines) {
print FILE $line;
}
close(FILE);
# Àӽà ÈÀÏÀ» ´Ù½Ã Àоîµé¿©¼ »ï¹Ù ÇÁ¸°Æ® ½ºÅ©¸³Æ®·Î Ãâ·ÂÇÒ
# ¼ö ÀÖµµ·Ï ¹è¿¿¡ ÀúÀåÇÑ´Ù.
@newlines = ("");
open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
while() {
push(@newlines,$_);
}
close(FILE);
system("rm $tmpfile");
}
sub createarray {
# Æ÷½ºÆ®½ºÅ©¸³Æ®¸¦ À§ÇÑ ¹è¿À» »ý¼ºÇÑ´Ù.
open(FILE, "<$file") || die "Can't open $file: $!\n";
while() {
push(@newlines,$_);
}
close(FILE);
}
______________________________________________________________________
10. ÀúÀÛ±Ç
This HOWTO is copyright 1996 by David Wood. It may be reproduced in
any form and freely distributed as long as the file stays intact,
including this statement.
11. °¨»çÀÇ ±Û
Á¦¾È »çÇ×ÀÌ ÀÖ´Ù¸é ¹Ù·Î ¸ÞÀÏÀ» º¸³»±â ¹Ù¶õ´Ù. ´ÙÀ½ °³Á¤ÆÇÀÇ ÀÌ°÷¿¡
´ç½Å¿¡°Ô °¨»ç¸¦ Ç¥ÇÏ°Ú´Ù.