· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/SMB-HOWTO

<!doctype linuxdoc system>

<!-- This is the SMB HowTo for Linux and other UNIXs
-->

<article>

<!-- Title information -->

<title>SMB HOWTO
<author>ÀúÀÚ: David Wood, <htmlurl url="mailto:dwood@plugged.net.au"
                  name="dwood@plugged.net.au">
<date>v1.0, 10 August 1996

<trans>ÀÌ Ã¢ÇÑ, <htmlurl
				url="mailto:chlee@physics.soongsil.ac.kr"
				name="chlee@physics.soongsil.ac.kr">
<abstract>
ÀÌ ¹®¼­´Â SMB HOWTO ÀÌ´Ù. NetBIOS ¶Ç´Â LanManager¶ó°íµµ ºÒ¸®´Â Session
Message Block (SMB) ÇÁ·ÎÅäÄÝÀ» ¸®´ª½º¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>¼Ò°³
<p>
ÀÌ ¹®¼­´Â SMB HOWTO ÀÌ´Ù. NetBIOS ¶Ç´Â LanManager¶ó°íµµ ºÒ¸®´Â Session
Message Block (SMB) ÇÁ·ÎÅäÄÝÀ» ¸®´ª½º¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.

ÀÌ ¹®¼­´Â David Wood (<htmlurl url="mailto:dwood@plugged.net.au" 
name="dwood@plugged.net.au">) °¡ °ü¸®ÇÑ´Ù. ´ÙÀ½ ÆÇ¿¡ Æ÷ÇԵDZ⸦ ¿øÇÏ´Â
Ãß°¡, ¼öÁ¤ ¶Ç´Â Á¤Á¤¿¡ ´ëÇÑ ¸ÞÀÏÀ» ¾ðÁ¦³ª ȯ¿µÇÑ´Ù.

SMB ÇÁ·ÎÅäÄÝÀº M$ 3.11, 95, NT(¾ÕÀ¸·Î M$·Î ÃÑĪÇϰڴÙ)¿¡¼­ µð½ºÅ©¿Í ÇÁ¸°Å͸¦ 
°øÀ¯Çϴµ¥ »ç¿ëµÈ´Ù.
Andrew TridgellÀÌ ¸¸µç »ï¹Ù µµ±¸µéÀ» ÀÌ¿ëÇØ¼­ ¸®´ª½º(À¯´Ð½º)¿Í À©µµ¿ì °£¿¡
µð½ºÅ©, ÇÁ¸°ÅÍ °øÀ¯°¡ °¡´ÉÇÏ´Ù.

»ï¹Ù·Î ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¾Æ·¡ÀÇ ³× °¡Áö°¡ ÀÖ´Ù.

<enum>
<item>¸®´ª½º ÆÄƼ¼Ç°ú M$¿ÍÀÇ °øÀ¯.
<item>M$ ÆÄƼ¼Ç°ú ¸®´ª½º¿ÍÀÇ °øÀ¯.
<item>¸®´ª½ºÀÇ ÇÁ¸°ÅÍ¿Í M$¿ÍÀÇ °øÀ¯.
<item>M$ÀÇ ÇÁ¸°ÅÍ¿Í ¸®´ª½º¿ÍÀÇ °øÀ¯.
</enum>

ÀÌ ³× °¡Áö¸¦ ¾ÕÀ¸·Î ¼³¸íÇϰڴÙ.

<sect>Á»´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¿øÇϸé
<P>
»ï¹Ù´Â ¸Å¿ì º¹ÀâÇÏ°íµµ ¿ÏÀüÇÑ ÆÐŰÁöÀÌ´Ù. »ï¹ÙÀÇ ¸ðµç °ÍÀ» ¼³¸íÇÑ´Ù´Â °ÍÀº
ÂüÀ¸·Î ¾î·Á¿î ÀÏÀÌ´Ù. ¶§¹®¿¡ ÀÌ ¹®¼­¿¡¼­´Â »ï¹ÙÀÇ È­ÀÏ, ÇÁ¸°Æ® ¼­ºñ½º¸¦ 
¸®´ª½º¿¡¼­ ¾î¶»°Ô ±¸¼ºÇÏ´ÂÁö¸¦ ¼³¸íÇÒ °ÍÀÌ´Ù.

´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÏ¸é ´ÙÀ½ ¹®¼­µéÀ» Âü°íÇϱ⠹ٶõ´Ù.
<itemize>
<item> »ï¹Ù¿¡ °ü·ÃµÈ ¹®¼­µéÀº »ï¹Ù ÆÐŰÁö¿¡ Æ÷ÇԵǾî ÀÖ´Ù. ÆÐŰÁö¸¦ ¾òÀ» ¼ö
ÀÖ´Â °÷ :
	<url url="ftp://nimbus.anu.edu.au/pub/tridge/samba/"
            name="ftp://nimbus.anu.edu.au/pub/tridge/samba/">
<item>Çѱ¹ ¹Ì·¯»çÀÌÆ®.
	<url url="http://kr.samba.org/samba/samba.html"
            name="http://kr.samba.org/samba/samba.html">
<item>The linux Printing HOWTO.
<item>The Print2Win Mini-HOWTO.
</itemize>


<sect>¼³Ä¡
<P>
»ï¹ÙÀÇ °¡Àå ÃÖ±ÙÀÇ ¼Ò½º´Â ´ÙÀ½ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.
        <url url="ftp://nimbus.anu.edu.au/pub/tridge/samba/"
            name="ftp://nimbus.anu.edu.au/pub/tridge/samba/">
¶Ç´Â ´ÙÀ½ Çѱ¹ ¹Ì·¯ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼öµµ ÀÖ´Ù.
<url url="http://mirror.korea.co.kr/samba/download.html">

·¹µåÇÞÀ» ¼³Ä¡ÇÑ´Ù¸é »ï¹ÙÆÐŰÁö´Â ¿É¼ÇÀ̹ǷΠ¼±ÅÃÀ» ÇØ¾ß¸¸ ÇÑ´Ù. ´Ù¸¥
¹èÆ÷ÆÇµéÀº »ï¹Ù ½ÇÇàÈ­ÀÏÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.

¾Æ·¡ÀÇ µÎ µ¥¸óÀº »ï¹Ù¸¦ »ç¿ëÇϱâ À§ÇØ ²À ÇÊ¿äÇÑ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î /usr/sbin
µð·ºÅ丮 ¾Æ·¡¿¡ ¼³Ä¡µÇ¾îÀÖ°í ½Ã½ºÅÛÀÇ Ãʱ⼳Á¤ ½ºÅ©¸³Æ®³ª inetd¿¡ ÀÇÇØ¼­
ºÎÆÃ½Ã¿¡ ½ÃÀ۵ǾîÁø´Ù. <ref id="sec-daemons" name="µ¥¸ó
½ÇÇà½Ã۱â">¿¡¼­ ½ºÅ©¸³Æ®ÀÇ ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.

<code>
	smbd (SMB µ¥¸ó)
	nmbd (Ŭ¶óÀÌ¾ðÆ®¸¦ À§ÇØ  NetBIOS nameserver¸¦ Áö¿øÇÏ´Ù )
</code>

»ï¹Ù ½ÇÇàÈ­ÀϵéÀº ÀϹÝÀûÀ¸·Î /usr/bin ¾Æ·¡¿¡ ¼³Ä¡µÇÁö¸¸ ¹Ù²Ü ¼ö ÀÖ´Ù.

<code>
	smbclient	(À¯´Ð½º¸¦ À§ÇÑ »ï¹Ù Ŭ¶óÀ̾ðÆ®)
	smbprint	(»ï¹Ù È£½ºÆ®ÀÇ ÇÁ¸°ÅÍ¿¡ ÇÁ¸°Æ®¸¦ Çϱâ À§ÇÑ ½ºÅ©¸³Æ®)
	smbprint.sysv	(À§ smbprint¿Í °°Áö¸¸ SVR4 À¯´Ð½º¸¦ À§ÇÑ °ÍÀÌ´Ù)
	smbstatus	(ÇöÀçÀÇ »ï¹Ù ¿¬°á »óŸ¦ º¸¿©ÁØ´Ù) 
	smbrun		(»ï¹Ù È£½ºÆ®ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ½ÇÇàÀ» ¿ëÀÌÇÏ°Ô ÇÏ´Â ½ºÅ©¸³Æ®)
</code>

Ãß°¡ÀûÀ¸·Î ÀÌ ¹®¼­¿¡ Æ÷ÇԵǾîÀÖ´Â `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 ¾Æ·¡¿¡ ´ÙÀ½°ú °°ÀÌ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î¶ó.

<code>
	ln -s /path/to/smb.conf /etc/smb.conf
</code>

ÃÖ±ÙÀÇ ·¡µåÇÞ ¹èÆ÷ÆÇÀ» ¼³Ä¡ÇÏ¿´´Ù¸é smb.conf È­ÀÏÀº /etc/samba µð·ºÅ丮
¾Æ·¡¿¡ ¼³Ä¡µÇ¹Ç·Î À̰ÍÀ» »ç¿ëÇÏ¸é µÈ´Ù.

<sect>µ¥¸ó ½ÇÇà½Ã۱â<label id="sec-daemons">
<P>
»ï¹ÙÀÇ µÎ µ¥¸óÀº /usr/sbin/smbd ¿Í /usr/sbin/nmbd ÀÌ´Ù.
»ï¹Ù µ¥¸óÀº inetd ¿¡ ÀÇÇØ¼­³ª µ¶¸³µÈ °úÁ¤À¸·Î ½ÇÇàµÇ¾îÁú ¼ö ÀÖ´Ù.
¿µ±¸ÀûÀÎ È­ÀÏ ¼­¹ö·Î ¼³Ä¡¸¦ ÇÑ´Ù¸é, »ï¹Ù µ¥¸óÀÌ Áß´ÜµÇ¸é ´Ù½Ã ½ÇÇàµÉ ¼ö
ÀÖµµ·Ï inetd ¿¡ ÀÇÇØ¼­ ½ÇÇàµÉ °ÍÀÌ´Ù. »ï¹Ù ¼­ºñ½º¸¦ °¡²û¾¿ »ç¿ëÇϰųª
´ÜÁö ½Ã½ºÅÛ °ü¸®¿¡ ÀÌ¿ëÇϱâ À§Çؼ­¶ó¸é /etc/rc.d/init.d ½ºÅ©¸³Æ®¿¡¼­
½ÇÇà½ÃŰ°Å³ª Á÷Á¢ Çʿ信 µû¶ó ¼öÀÛ¾÷À¸·Î ½ÇÇà½Ãų ¼ö ÀÖ´Ù.

inetd ¿¡ÀÇÇØ µ¥¸óÀ» ½ÇÇà½Ã۱â À§Çؼ­´Â ¾Æ·¡ ÁÙµéÀ» /etc/inetd.conf¿¡
Ãß°¡½ÃÄÑ¾ß ÇÑ´Ù.

<tscreen><code>
    # 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
</code></tscreen>

±× ´ÙÀ½¿¡ inetd µ¥¸óÀ» ´ÙÀ½°ú °°ÀÌ Àç½ÇÇà ½ÃŲ´Ù.

<code>
    kill -HUP 1
</code>

xinetd¿¡¼­ ½ÇÇà½ÃŰ·Á¸é ´ÙÀ½³»¿ëÀÇ ÆÄÀÏÀ» ¼³Á¤ µð·ºÅ丮¿¡ Ãß°¡ÇÏ¸é µÈ´Ù.
file: netbios-ns
<code>
service netbios-ns
{
	socket_type	= dgram
	protocol	= udp
	wait		= yes
	user		= root
	group		= root
	server		= /usr/sbin/nmbd
#serverÀÇ ÁÙÀº nmbdÀÇ °æ·Î.
}
</code>
file netbios-ssn
<code>
service netbios-ssn
{
	socket_type	= stream
	protocol	= tcp
	wait		= no
	user		= root
	group		= root
	server		= /usr/sbin/smbd
#server ÁÙÀº smbdÀÇ °æ·Î.
} 
</code>

½Ã½ºÅÛ Ãʱ⠽ÇÇà ½ºÅ©¸³Æ®¿¡¼­ µ¥¸óÀ» ½ÇÇà½Ã۱â À§Çؼ­´Â ¾Æ·¡ÀÇ
½ºÅ©¸³Æ®¸¦ /etc/rc.d/init.d/smb ·Î ÀúÀåÀ» Çϰí ÁÖ¼®¿¡ ³ª¿ÍÀִµ¥·Î
½Éº¼¸¯ ¸µÅ©¸¦ ÇØ¾ßÇÑ´Ù.
Âü°í·Î ·¡µåÇÞ µîÀÇ ¹èÆ÷ÆÇ¿¡´Â »ï¹Ù ÆÐŰÁö ¼³Ä¡¿Í ÇÔ²² Ãʱ⠽ÇÇà ½ºÅ©¸³Æ®°¡ 
±âº»ÀûÀ¸·Î ¼³Ä¡µÇ¹Ç·Î ±×°ÍÀ» »ç¿ëÇÏ¸é µÈ´Ù.

<tscreen><code>
    #!/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" ] &ero;&ero; 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
</code></tscreen>


<sect>ÀϹÝÀûÀÎ ¼³Á¤(/etc/smb.conf ¶Ç´Â /etc/samba/smb.conf)
<P>
¸®´ª½º(¶Ç´Â ´Ù¸¥ À¯´Ð½º ½Ã½ºÅÛ)¿¡¼­ »ï¹Ù¼³Á¤Àº /etc/smb.conf (¶Ç´Â /etc/samba/smb.conf) È­ÀÏ¿¡
ÀÇÇØ¼­ Á¦¾îµÈ´Ù. ÀÌ ¼³Á¤È­ÀÏÀº ¿ÜºÎ¿Í °øÀ¯½Ãų ½Ã½ºÅÛ ÀÚ¿ø°ú ¾î¶²
Á¦¾àÀ» µÑ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù.

ÀÌ Àý¿¡¼­ ¸®´ª½º µå¶óÀ̺ê¿Í ÇÁ¸°Å͸¦ M$¿Í °øÀ¯½ÃŰ´Â °ÍÀ»
¼³¸íÇÒ °ÍÀÌ´Ù. À̹ø ÀýÀÇ smb.conf È­ÀÏÀº ´ÜÁö ¼Ò°³¸¦ À§ÇÑ °ÍÀ¸·Î¼­
¾ÆÁÖ °£´ÜÇÏ´Ù. 
»ó¼¼ÇÑ °Íµé¿¡ ´ëÇØ ¹ú½áºÎÅÍ °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÃßÈÄ Àý¿¡¼­ Áß¿äÇÑ
°³³äµéÀ» ¼Ò°³ÇÒ °ÍÀÌ´Ù.

°¢ ¿µ¿ªÀº [global], [homes], [printer], µîÀ¸·Î ¸»¸Ó¸®°¡ ½ÃÀ۵ȴÙ.

[global] ¿µ¿ª¿¡¼­´Â »ï¹Ù°¡ ¸ðµç ÀÚ¿øµéÀÇ °øÀ¯¸¦ Á¤ÀÇÇϴµ¥ »ç¿ëÇÏ´Â
¸î¸î º¯¼öµéÀ» Á¤ÀÇÇÑ´Ù.

[homes] ¿µ¿ª¿¡¼­´Â »ç¿ëÀÚ°¡ ¿ø°ÝÀ¸·Î ¸®´ª½ºÀÇ »ç¿ëÀÚ È¨ µð·ºÅ丮·Î Á¢¼ÓÇÏ´Â
°ÍÀ» Çã¿ëÇÑ´Ù. ´Ü, »ç¿ëÀÚ´Â ÀÚ½ÅÀÇ È¨ µð·ºÅ丮 Á¢¼Ó¸¸À» Çã¿ëÇÑ´Ù.
Áï, M$ÀÇ »ç¿ëÀÚ°¡ M$·ÎºÎÅÍ ¸®´ª½ºÀÇ °øÀ¯ µå¶óÀ̺ê·Î Á¢¼ÓÀ» ½ÃµµÇÑ´Ù¸é,
¿ÀÁ÷ »ç¿ëÀÚ °³ÀÎÀÇ È¨ µð·ºÅ丮¸¸ÀÌ Á¢¼ÓÀÌ °¡´ÉÇÏ´Ù. À̶§ Áß¿äÇÑ °ÍÀº
»ç¿ëÀÚ´Â ¸®´ª½º¿¡ °èÁ¤À» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù.

¾Æ·¡ÀÇ smb.conf ¿¹Á¦ È­ÀÏÀº »ç¿ëÀÚ°¡ ·ÎÄà ÄÄÇ»ÅÍÀÇ °³ÀΠȨ µð·ºÅ丮
Á¢¼Ó°ú Àӽà µð·ºÅ丮 »ý¼ºÀ» Çã¶ôÇÑ´Ù. M$ »ç¿ëÀÚ°¡ ÀÌµé °øÀ¯¸¦ º¼ ¼ö
ÀÖ±âÀ§Çؼ­´Â ¸®´ª½º°¡ ·ÎÄà ³×Æ®¿öÅ© »ó¿¡ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯¸é »ç¿ëÀÚ´Â
À©µµ¿ìÁî È­ÀÏ ¸Å´ÏÀú³ª Ž»ö±âÀÇ ³×Æ®¿öÅ© µå¶óÀ̺ê·Î °£´ÜÈ÷ ¿¬°áÇÒ ¼ö
ÀÖ´Ù.

´õ ¸¹Àº ÀÚ¿øµéÀ» °øÀ¯½Ã۱â À§ÇÑ Ãß°¡ÀûÀÎ Ç׸ñµéÀ» ´ÙÀ½ Àý¿¡¼­
¼³¸íÇÑ´Ù.

<tscreen><code>
; /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
</code></tscreen>

Ȩµð·ºÅ丮¸¦ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ¼³Á¤ÇÑ °æ¿ì Á¢±ÙÇÏ·Á°í Çϸé user°¡ ¾ø´Ù°í ¾ÈµÉ °ÍÀÌ´Ù smbpasswd·Î »ç¿ëÀÚ¸¦ ¸¸µé°í ÆÐ½º¿öµå¸¦ ¼³Á¤ÇØÁÖ¾î¾ß Çϴµ¥,
ÀÌ ¶§ smbpasswd·Î´Â user »ý¼ºÀÌ ¾ÈµÇ°í ±âÁ¸¿¡ ÀÖ´Â »ç¿ëÀÚÀÇ ÆÐ½º¿öµå¸¸ ¹Ù²Ù¾îÁØ´Ù. smbpasswd -a ·Î ÇÏ¸é »ç¿ëÀÚ°¡ ¾ø´Â °æ¿ì »õ·Î ¸¸µé±â ¶§¹®¿¡ óÀ½¿¡ ¼³Ä¡ ÈÄ¿¡´Â smbpasswd -a·Î »ç¿ëÀÚ¸¦ Ãß°¡ÇÏÀÚ. »ç¿ëÀÚ À̸§Àº ±âÁ¸ÀÇ »ç¿ëÀÚ À̸§À» ±×´ë·Î ¾²¸é µÈ´Ù.

<sect>¸®´ª½º µå¶óÀ̺긦 M$¿Í °øÀ¯½Ã۱â
<P>
¾ÕÀÇ °£´ÜÇÑ smb.conf¿¡¼­¿Í °°ÀÌ M$ »ç¿ëÀÚ¿¡°Ô ¸®´ª½º µå¶óÀ̺긦
°øÀ¯½Ã۱â´Â ½±´Ù. ¾î¶µç, »ï¹ÙÀÇ ¿©·¯ °¡Áö ÀÚ¿øÀ» °ü¸®ÇÏ´Â ¹æ¹ýµéÀ»
¸î°¡Áö ¿¹¸¦ µé¾î ¼³¸íÇϰڴÙ.

µð·ºÅ丮¸¦ °ø¿ëÀ¸·Î °øÀ¯½Ã۱â À§Çؼ­´Â ¾ÕÀÇ smb.confÈ­ÀÏ [tmp] ¿µ¿ªÀ»
º¹»çÇØ¼­ ¾Æ·¡¿Í °°ÀÌ ¹Ù²Û ´ÙÀ½ È­ÀÏ¿¡ Ãß°¡ÇÑ´Ù.

<tscreen><code>
[public]
   comment = Public Stuff
   path = /home/public
   public = yes
   writable = yes
   printable = yes
</code></tscreen>

À§ÀÇ µð·ºÅ丮¸¦ staff ±×·ì¿¡ ¼ÓÇÑ »ç¿ëÀÚ¿¡°Ô¸¸ ¾²±â ±ÇÇÑÀ» ÁÖ°í ±×¿Ü
ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô´Â Àб⠱ÇÇÑ ¸¸À» ÁÖ±âÀ§Çؼ­´Â ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ÇÑ´Ù.

<tscreen><code>
[public]
   comment = Public Stuff
   path = /home/public
   public = yes
   writable = yes
   printable = no
   write list = @staff
</code></tscreen>

µå¶óÀÌºê °øÀ¯¿¡ ´ëÇÑ ¶Ç´Ù¸¥ ¹æ¹ýµéÀº »ï¹Ù ¹®¼­³ª ¸Å´º¾ó ÆäÀÌÁö¸¦ º¸±â
¹Ù¶õ´Ù.


<sect>M$ÀÇ µå¶óÀ̺긦 ¸®´ª½º¿Í °øÀ¯½Ã۱â
<P>
À¯´Ð½º¸¦ À§ÇÑ »ï¹Ù Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº »ï¹Ù ¼Ò½º¿¡ Æ÷ÇԵǾî ÀÖ´Ù.
ÀÌ °ÍÀº ÄÚ¸Çµå ¶óÀο¡¼­ ftp¿Í °°Àº ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù. À̰ÍÀ» M$ ¼­¹ö¿Í
¸®´ª½º Ŭ¶óÀÌ¾ðÆ® °£¿¡ È­ÀÏ Àü¼Û À¯Æ¿¸®Æ¼·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¿øÇϴ ȣ½ºÆ®ÀÇ »ç¿ë°¡´ÉÇÑ °øÀ¯¸¦ È®ÀÎÇϱâ À§Çؼ­´Â ´ÙÀ½ ¸í·ÉÀ»
½ÇÇàÇØ º¸¾Æ¶ó.

<code>
    /usr/sbin/smbclient -L host
</code>

`host'´Â »ìÆìº¸±â¸¦ ¿øÇÏ´Â ÄÄÇ»ÅÍÀÇ À̸§ÀÌ´Ù. ÀÌ ¸í·ÉÀº »ç¿ë °¡´ÉÇÑ
`¼­ºñ½º'ÀÇ À̸§À» º¸¿©ÁÙ °ÍÀÌ´Ù. Áï, °øÀ¯ÇÒ ¼ö ÀÖ´Â µå¶óÀ̺곪
ÇÁ¸°ÅÍÀÇ À̸§µéÀ» º¸¿©ÁØ´Ù. »ï¹Ù ¼­¹ö°¡ ¾ÏÈ£ ¼³Á¤ÀÌ µÇ¾îÀÖ´Ù¸é ¾ÏÈ£¸¦
¹°¾îº¼ °ÍÀÌ´Ù. ¼­¹öÀÇ `guest' °èÁ¤À̳ª »ç¿ëÀÚ °èÁ¤ÀÇ ¾ÏÈ£¸¦ ¾Ë°í
ÀÖ¾î¾ß ÇÑ´Ù.

¿¹:

<code>
    smbclient -L zimmerman
</code>

ÀÌ ¸í·ÉÀÇ °á°ú´Â ´ÙÀ½ ó·³ ³ªÅ¸³¯ °ÍÀÌ´Ù.

<tscreen><code>
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            
</code></tscreen>

ÀÌ ºê¶ó¿ìÁî ¸ñ·ÏÀº ¿¬°áµÈ ³×Æ®¿÷ »ó¿¡ °øÀ¯µÈ ÀÚ¿øÀ» °¡Áø »ï¹Ù ¼­¹öµéÀ»
º¸¿©ÁØ´Ù.

Ŭ¶óÀÌ¾ðÆ®¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

<code>
    /usr/sbin/smbclient service <password>
</code>

`service'´Â ÄÄÇ»ÅÍ¿Í °øÀ¯¸íÀÌ´Ù. ¿¹¸¦ µé¾î `zimmerman' ÄÄÇ»ÅÍÀÇ
`public'À¸·Î °øÀ¯µÈ µð·ºÅ丮¸¦ »ç¿ëÇϱâ À§Çؼ­´Â, service°¡
\\zimmerman\public À¸·Î µÈ´Ù. ±×·±µ¥ ½©ÀÇ Á¦¾à¶§¹®¿¡
¿ª½½·¡½¬ »ç¿ë¿¡ ¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. ±×·¡¼­ ´ÙÀ½°ú °°ÀÌ ÇØ¾ß ÇÑ´Ù.

<code>
    /usr/sbin/smbclient \\\\zimmerman\\public mypasswd
</code>

`mypasswd'´Â ÀÚ½ÅÀÇ ¾ÏÈ£ÀÌ´Ù.

¼º°øÇÏ¸é ´ÙÀ½°ú °°Àº smbclient ÇÁ·ÒÇÁÆ®°¡ ³ªÅ¸³­´Ù.

<tscreen><code>
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: \> 
</code></tscreen>

`h'¸¦ Ä¡¸é smbclient µµ¿ò¸»À» º¼ ¼ö ÀÖ´Ù.

<tscreen><code>
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: \> 
</code></tscreen>

¸¸¾à ftp¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ¶ó¸é ¾î·Á¿ò¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.


<sect>¸®´ª½º ÇÁ¸°ÅÍ¿Í M$ °øÀ¯½Ã۱â
<P>
¸®´ª½ºÀÇ ÇÁ¸°Å͸¦ M$¿Í °øÀ¯½Ã۱â À§Çؼ­´Â ÇÁ¸°ÅͰ¡ ¸®´ª½º¿¡¼­
ÀÛµ¿µÇµµ·Ï ¼³Á¤ÀÌ µÇ¾îÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀº ´ç¿¬ÇÑ °ÍÀÌ´Ù. ¸®´ª½º¿¡¼­
ÇÁ¸°Æ®°¡ °¡´ÉÇÏ´Ù¸é »ï¹Ù °øÀ¯¸¦ ¼³Á¤ÇÏ´Â °ÍÀº °£´ÜÇÑ ÀÏÀÌ´Ù.

·ÎÄà ÇÁ¸°Æ®¸¦ ¼³Á¤ÇÏ´Â ºÎºÐ¿¡ ´ëÇØ¼­´Â Printing HOWTO ¹®¼­¸¦
Âü°íÇϱ⸦ ¹Ù¶õ´Ù.

ÀÌ ¹®¼­ÀÇ ÀúÀÚ´Â M$ NT¿¡ ¿¬°áµÈ ÇÁ¸°Å͸¦ »ç¿ëÇϱ⠶§¹®¿¡ ÀÌ ºÎºÐÀ»
¿ÏÀüÇÑ °ÍÀ¸·Î »ý°¢ÇÏÁö ¸»°í, ´ÜÁö Á¦¾ÈÇÏ´Â Á¤µµ·Î »ý°¢Çϱ⠹ٶõ´Ù.
¸¸¾à ¸®´ª½º ÇÁ¸°ÅÍ¿Í M$¸¦ °øÀ¯½ÃŰ´Â ÀÚ¼¼ÇÑ ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù¸é ¸ÞÀÏ
       <htmlurl url="mailto:dwood@plugged.net.au"
                  name="dwood@plugged.net.au">
À» º¸³»Áֱ⠹ٶõ´Ù. ±×°ÍÀ» Âü°í·ÎÇØ¼­ ÀÌ ºÎºÐÀÌ ¿Ïº®ÇÏ°Ô µÉ ¼ö ÀÖ´Ù.

smb.conf¿¡ ÇÁ¸°Æ® ¼³Á¤À» Ãß°¡ÇÑ´Ù.

<tscreen><code>
[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
</code></tscreen>

ÇÁ¸°ÅÍÀÇ °æ·Î(ÀÌ °æ¿ì¿£ [ljet]ÀÇ path)¸¦ /etc/printcap¿¡ Á¤ÀǵÈ
½ºÇ®µð·ºÅ丮¿Í ÀÏÄ¡½ÃŰ´Â °ÍÀ» ÀØÁö¸»¾Æ¶ó.

ÁÖÀÇ: »ï¹Ù¸¦ ÀÌ¿ëÇØ À¯´Ð½º¿¡ ¿¬°áµÈ ÇÁ¸°ÅÍ¿Í M$ NT¸¦ °øÀ¯½ÃŰ´Â °Í¿¡´Â
¾à°£ÀÇ ¹®Á¦°¡ ÀÖ´Ù. ¹®Á¦ÀÇ Çϳª´Â °øÀ¯µÈ ÇÁ¸°Å͸¦ NT°¡ ÀûÀýÇÏ°Ô ÀνÄÇÒ
¼ö ÀÖ´À³Ä¿¡ ´ëÇÑ °ÍÀÌ´Ù. ÀÌ ¹®Á¦¸¦ °íÄ¡±â À§Çؼ­´Â »ï¹Ù ¼Ò½º¿¡
Æ÷ÇԵǾî ÀÖ´Â docs/WinNT.txt ¹®¼­¸¦ º¸±â ¹Ù¶õ´Ù. ¶Ç´Ù¸¥ ¹®Á¦´Â ¾ÏÈ£¸¦
ó¸®ÇÏ´Â ¹®Á¦ÀÌ´Ù. À§ÀÇ ¹®¼­¸¦ »ìÆìº¸¸é ÀÌ ¹®Á¦ÀÇ ¼öÁ¤¿¡ ½ÇÆÐÇÑ °ÍÀ»
ÀÌÇØÇÏ±â ¾î·Æ°Ô ½á³õ¾Ò´Ù.

<sect>M$ÀÇ ÇÁ¸°Å͸¦ ¸®´ª½º¿Í °øÀ¯Çϱâ
<P>
M$ÀÇ ÇÁ¸°Å͸¦ °øÀ¯Çϱâ À§Çؼ­´Â ¾Æ·¡ÀÇ ÀÛ¾÷À» ²À ÇØ¾ß¸¸ ÇÑ´Ù.

a) /etc/printcap È­ÀÏ¿¡ ·ÎÄà µð·ºÅ丮 ±¸Á¶(½ºÇ®µð·ºÅ丮 µî)¿Í Á¤È®È÷
 ÀÏÄ¡ÇÏ´Â Àû´çÇÑ »çÇ×µéÀÌ ÀÖ¾î¾ß ÇÑ´Ù.

b) /usr/bin/smbprint È­ÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ È­ÀÏÀº »ï¹Ù ¼Ò½º¿¡ °°ÀÌ
Æ÷ÇԵǾî Àִµ¥, »ï¹Ù ½ÇÇà È­Àϸ¸ÀÌ µé¾îÀÖ´Â ¹èÆ÷º»¿¡´Â ºüÁ®ÀÖÀ» ¼ö
ÀÖ´Ù. ÀÌ È­ÀÏÀ» ¾à°£ ¼öÁ¤ÇÑ °ÍÀÌ ¾Æ·¡¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.

c) ¸¸¾à ¾Æ½ºÅ° È­ÀÏÀ» Æ÷½ºÆ®½ºÅ©¸³Æ® È­ÀÏ·Î º¯È¯Çϱâ À§Çؼ­´Â nenscript³ª
±×¿Í °°Àº ¿ªÇÒÀ» ÇÏ´Â °ÍÀ» °¡Áö°í ÀÖ¾î¾ß¸¸ ÇÑ´Ù. nenscript´Â Æ÷½ºÆ®½ºÅ©¸³Æ®
º¯È¯±âÀÌ°í º¸ÅëÀº /usr/bin ¾Æ·¡¿¡ ¼³Ä¡µÈ´Ù.

d) »ï¹Ù·Î ÇÁ¸°ÆÃÇÒ¶§ »ç¿ëÇÏ±â ÆíÇÑ µµ±¸¸¦ ÀÌ¿ëÇϱ⸦ ¿øÇÒ °ÍÀÌ´Ù. ¾Æ½ºÅ°
È­ÀÏ, Æ÷½ºÆ®½ºÅ©¸³Æ® È­ÀÏÀ» ó¸®ÇØÁÖ´Â, ¶Ç´Â Æ÷½ºÆ®½ºÅ©¸³Æ® È­ÀÏÀ»
»ý¼ºÇØÁÖ´Â ÆÞ ½ºÅ©¸³Æ®°¡ ¾Æ·¡¿¡ ÁÖ¾îÁ® ÀÖ´Ù.

M$ NT È£½ºÆ®ÀÇ HP 5MP ÇÁ¸°Å͸¦ À§ÇÑ /etc/printcap È­ÀÏÀÇ ¼³Á¤ÀÌ ¾Æ·¡¿¡
ÁÖ¾îÁ® ÀÖ´Ù. °¢ Ç׸ñµéÀº ´ÙÀ½ÀÇ Àǹ̰¡ ÀÖ´Ù

<code>
	cm - ÁÖ¼®(ÇÁ¸°ÅÍ ¼³¸í)
	lp - Ãâ·ÂÀ» À§ÇÑ ÀåÄ¡¸í
	sd - ·ÎÄà ÄÄÇ»ÅÍÀÇ ÇÁ¸°ÅÍ ½ºÇ® µð·ºÅ丮
	af - the accounting file
	mx - ÃÖ´ë È­ÀÏ Å©±â( 0Àº Á¦ÇÑÀÌ ¾øÀ½À» ¶æÇÑ´Ù)
	if - ÀÔ·Â ÇÊÅÍ(½ºÅ©¸³Æ®)ÀÇ À̸§
</code>

´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϸé Printing HOWTO³ª printcapÀÇ ¸Å´º¾óÀ» º¸±â ¹Ù¶õ´Ù

<tscreen><code>
# /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:
</code></tscreen>

½ºÇ® µð·ºÅ丮¿Í accounting µð·ºÅ丮°¡ Á¸ÀçÇÏ°í ¾²±â°¡´É ¸ðµå·Î
¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ 'if' ÁÙ¿¡ smbprint ½ºÅ©¸³Æ®(¾Æ·¡¿¡ ÁÖ¾îÁø)ÀÇ
Á¤È®ÇÑ °æ·Î°¡ ÀûÇôÀÖ´ÂÁö, ÀûÀýÇÑ ÀåÄ¡¸¦ °¡¸®Å°°í ÀÖ´ÂÁö(/dev ¾Æ·¡ÀÇ Æ¯º°
È­ÀÏ)¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.

´ÙÀ½À¸·Î smbprint ½ºÅ©¸³Æ®¿¡´ëÇÑ ¼³¸íÀÌ´Ù. ½ºÅ©¸³Æ®´Â ´ë°³ /usr/bin ¾Æ·¡¿¡
À§Ä¡Çϰí, »ï¹Ù¸¦ ¸¸µç»ç¶÷À¸·Î ¿©°ÜÁö´Â Andrew Tridgell¿¡ ÀÇÇÑ °ÍÀÌ´Ù. ÀÌ
½ºÅ©¸³Æ®´Â »ï¹Ù¼Ò½º ¹èÆ÷º»¿¡´Â Æ÷ÇԵǾîÀÖÁö¸¸ ½ÇÇàÈ­ÀÏ ¹èÆ÷º»¿¡´Â µé¾îÀÖÁö
¾Ê´Ù. ±×·¡¼­ ¿©±â¿¡¼­ ´Ù½Ã ¸¸µé¾î º¼ °ÍÀÌ´Ù.

ÀÌ ½ºÅ©¸³Æ®¸¦ ÁÖÀDZí°Ô »ìÆìº¼ °ÍÀ¸·Î ¿©°ÜÁö´Âµ¥, ÀÌ ½ºÅ©¸³Æ®¸¦ ±×³É ±×´ë·Î
»ç¿ëÇÏ´Â °Íº¸´Ù´Â ÀÚ½ÅÀÇ È¯°æ¿¡ ¾Ë¸Â°Ô ¼öÁ¤ÇÏ´Â °ÍÀÌ ´õ ¹Ù¶÷Á÷Çϰí
À¯¿ëÇÏ´Ù.

<tscreen><code>
#!/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
</code></tscreen>

´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆÇÀº ¾Æ½ºÅ° ¹®¼­¸¦ Æ÷½ºÆ®½ºÅ©¸³Æ®·Î º¯È¯ÇØÁÖ´Â
nenscript¸¦ °¡Áö°í ÀÖ´Ù. ´ÙÀ½ perl ½ºÅ©¸³Æ®´Â smbprint¸¦ ÅëÇØ ¸®´ª½º¿¡¼­
ÇÁ¸°Æ®ÇÏ´Â °ÍÀ» ¾ÆÁÖ ½±°Ô ÇØÁØ´Ù.

<code>
Usage: print [-a|c|p] <filename>
       -a prints <filename> as ASCII
       -c prints <filename> formatted as source code
       -p prints <filename> as Postscript
        If no switch is given, print attempts to
        guess the file type and print appropriately.
</code>

¾Æ½ºÅ° È­ÀÏÀ» ÇÁ¸°Æ®Çϱâ À§Çؼ­ smbprint¸¦ ÀÌ¿ëÇÒ¶§ ±ä ÁÙÀº À߸®´Â °æ¿ì°¡
ÀÖ´Ù. ÀÌ ½ºÅ©¸³Æ®´Â °¡´ÉÇÏ´Ù¸é ±ä ÁÙÀÌ ´Ü¾î Áß°£ÀÌ À߸®´Â ´ë½Å¿¡ °ø¹é¿¡¼­
À߸®µµ·Ï ÇØÁØ´Ù.

nenscript´Â ¼Ò½ºÄڵ忡 Çü½ÄÀ» ÁØ´Ù. Àå½ÄÀûÀÎ ¸Ó¸´¸»(³¯Â¥, È­ÀÏÀ̸§ µî)À»
Ãß°¡ÇÏ¿© ¾Æ½ºÅ° È­Àϰú Çü½ÄÀ» »ý¼ºÇÑ´Ù. ¶ÇÇÑ, ÁÙ¹øÈ£¸¦ ¸Å±ä´Ù. ¾Æ·¡ ¿¹¸¦
ÀÌ¿ëÇÏ¿© ´Ù¸¥ ¸ð¾çÀÇ Çü½Äµµ °¡´ÉÇÏ´Ù.

Æ÷½ºÆ®½ºÅ©¸³Æ® ¹®¼­´Â ÀÌ¹Ì ÀûÀýÇÑ Çü½ÄÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î Á÷Á¢ Ãâ·ÂÀÌ µÈ´Ù.

<tscreen><code>
#!/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!";
}

&ero;ParseCmdLine(@ARGV);

# DBG
print "filetype is $filetype\n";

if ($filetype eq "ASCII") {
	&ero;wrap($line_length);
} elsif ($filetype eq "code") {
	&ero;codeformat;
} elsif ($filetype eq "ps") {
	&ero;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) {
		&ero;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] <filename>
       -a prints <filename> as ASCII
       -c prints <filename> formatted as source code
       -p prints <filename> 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(<FILE>) {
		$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¸¦ ÅëÇÑ ÇÊÅ͸µÀ» ÇÑ´Ù. 
	&ero;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(<FILE>) {
		push(@newlines,$_);
	}
	close(FILE);
	system("rm $tmpfile");
}

sub createarray {
	# Æ÷½ºÆ®½ºÅ©¸³Æ®¸¦ À§ÇÑ ¹è¿­À» »ý¼ºÇÑ´Ù.
	open(FILE, "<$file") || die "Can't open $file: $!\n";
	while(<FILE>) {
		push(@newlines,$_);
	}
	close(FILE);
}
</code></tscreen>


<sect>ÀúÀÛ±Ç
<P>
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.

<sect>°¨»çÀÇ ±Û
<P>
Á¦¾È »çÇ×ÀÌ ÀÖ´Ù¸é ¹Ù·Î ¸ÞÀÏÀ» º¸³»±â ¹Ù¶õ´Ù. 
´ÙÀ½ °³Á¤ÆÇÀÇ À̰÷¿¡ ´ç½Å¿¡°Ô °¨»ç¸¦ Ç¥ÇϰڴÙ.

</article>


ID
Password
Join
The Tree of Learning bears the noblest fruit, but noble fruit tastes bad.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-09-15 10:31:07
Processing time 0.0017 sec