삼바하면 여러분은 무엇을 생각하나요? 춤이름이 먼저 생각나시면 아직 리눅스 광이 되기에 조금 먼 모양입니다. 아님 네트웍이랑 인연이 먼곳에 살고 계신 사람이 든지요.
우리 대부분의 경우를 보면 컴퓨터가 여러 대 있습니다. 윈도가 깔린 컴퓨터, NT가 깔린 컴퓨터, UNIX가 깔린 컴퓨터, 그리고 리눅스가 깔린 컴퓨터가 있습니다. 저한테 지금 야한 동영상이 하나 있습니다. 물론 리눅스 박스에 있습니다. 그럼 내 앞에 앉아 있는 후배가 보여 달라고 조르고 있습니다. 어떻게 해야 할 까요? 600M가 넘는 파일을 후배 녀석이 볼수 있게 하려면... ftp로 받아 볼까요. 시간은 그렇다 치고, 후배의 컴퓨터에는 그만한 용량이 있으리라는 보장이 없죠. 어떻게 해야 될까요. 이럴때 생각나는게 리눅스와 윈도도 윈도의 공유기능 같은게 있으면 좋겠다는 생각이죠.
이게 감이 팍 오죠. 그 기능을 구현해 주는게 바로 삼바입니다. 삼바는 윈도우와 리눅스간의 파일 공유 뿐만 아니라 프린터도 공유할 수 있게 해 줍니다. 삼바를 한마디로 정의 하자면 리눅스 서버의 자원을 윈도우 클라이언트에서 사용할 수 있게 해주는 것입니다. 물론 반대의 경우도 가능합니다.
삼바는 기본적으로 리눅스를 설치 할때 설치 할 수 있습니다. 당연히 나중에 소스나 RPM 파일로도 설치 할 수 있습니다.
몇가지 설치와 설치될 파일들에 대해 설명합니다.
rpm -Uvh samba-2.0.5a-12kr.i386.rpm rpm -Uvh samba-client-2.0.5a-12kr.i386.rpm rpm -Uvh samba-common-2.0.5a-12kr.i386.rpm
우선 앞에서 설명한 사이트에 가서 필요한 파일을 다운 받습니다. 그리고 다음과 같은 과정을 통해 설치 합니다. 소스에 README 파일등에 설치 방업과 주의 사항이 있으므로 읽고 참고를 합니다. 물론 영어이므로 상당한 영어 실력이 아니면 읽다 지치기 쉽다. 그러나 그렇게 어려운 내용이 아니므로 참고 읽으면 거의 모든 문제를 해결 할 수 있습니다.
$ tar xvzf samba-2.0.5a.tar.gz -c src/ $ cd src/samba-2.0.5a/source $ ./configure --prefix=/usr --libdir=/etc --localstatedir=/var --with-smbmount --with-automount $ make $ make install
3. 삼바 서버의 실행
삼바서버를 실행하려면 데몬이 실행되고 있어야 합니다. 만약 RPM으로 설치를 했다면 setup
명령을 내린후 시스템 서비스 메뉴에서 samba를 선택하고 재부팅하면 됩니다. 아니면
/etc/rc.d/init.d/smb start하면 됩니다.
문제는 소스로 설치 했을때 인데요... 우선 아래 줄 들을 /etc/rc.d/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 inetd
시스템이 시작될때 자동으로 시작되게 하려면 다음 스크립트를 /etc/rc.d/init.d/smb 로
저장을 하고 실행 파일로 만들어 줍니다. 이건 SAMBA-HOWTO에 있는 내용입니다.
#!/bin/sh # # /etc/rc.d/init.d/smb - 삼바 서비스를 시작, 중지한다. # # 아래와 같이 이 화일을 심볼릭 링크를 시킨다. # symlinks: /etc/rc.d/rc1.d/K35smb (셧다운할 때 SMB 서비스를 죽인다.) # /etc/rc.d/rc3.d/S91smb (택스트 모드로 로그인할 때 # SMB서비스를 시작한다.) # /etc/rc.d/rc6.d/K35smb (리부트할 때 SMB 서비스를 죽인다.) # # 함수 라이브러리 소스 . /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 esac4. 삼바 설정 - 기본적인 설정
다른 대부분의 프로그램이 그렇듯이 삼바 역시 /etc/smb.conf 파일에 의해 제어됩니다.이 설정 파일은 외부와 공유시킬 시스템 자원과 언떤 제약을 둘 것인가를 결정하고 프린터설정을 다룹니다. 각 영역은 global, homes, printers등으로 시작을 합니다.4.1 global
삼바가 자원들의 공유를 정의 하는데 필요한 몇몇 변수를 정의합니다.4.2 homes
사용자가 원격으로 리눅스의 홈디렉토리로 접근 하는 걸 설정합니다. 단 사용자는 자신의홈디렉토리만을 접금할 수 있습니다. 그리고 당연한 말이지만 리눅스에 계정이 있을대 해당하는말입니다.4.3 printers, ljet
프린터 설정 영역입니다. 리눅스의 프린터를 윈도에 공유할 수 있습니다. 이때 리눅스의 프린트경로를 /etc/printcap에 정의 된 스풀디렉토리와 일치 해야 합니다.그리고 약간의 편법인데 윈도우즈95/98에서는 되는데 NT에서 안되는 프린터가 있습니다.물론 리눅스에서는 되야 됩니다. 이걸 우니도 98에 연결하고, 리눅스에서 삼바로 연결합니다.그리고 NT에서는 리눅스 프린터를 공유합니다. 이렇게 프린트를 할 수도 있습니다.4.4 example
아래의 예에서는 사용자가 로컬 컴퓨터의 개인 홈 디렉토리 접속과 임시 디렉토리의 생성을허락합니다. 리눅스가 로컬 네트웍상에 있으면 사용자는 윈도 탐색기의 네트웍드라이브로연결해서 사용할 수 있습니다.; /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 printing = bsd printcap name = /etc/printcap load printers = 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 ;이하는 프린터 설정 [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
5. 리눅스 드라이브를 윈도우에 공유하기
윈도 네트웍에서 많이 하는 일 중에 하나가 하나의 공유 디렉토리를 설정하여 서로 공유하는
것입니다. 리눅스에서도 삼바를 통해 똑같은 작업을 할 수 있습니다.
[public] comment = Public Stuff path = /home/public public = yes writable = yes # 네트워크 관리자에서 브라우징이 가능하려면 다음과 같이 넣어 준다. # browseable = yes # 다음은 모두에게 프린트를 허용한 것이다. # 디렉토리를 syberlaw 그룹에 속한 사용자에게만 쓰기 권한을 주고, # 그 외 일반 사용자에게는 읽기 권한만을 주기 위해서는 아래와 같이 한다. # printable = no # write list = @cyberlaw printable = yes6. 세부적인 설정
다음은 smb.conf 파일을 전체적으로 설명한 것입니다.
<참고>다음 예는 4회 리눅스 공동체 세미나 자료(B-6) 중 일부 입니다.
① [global] 부분 [global] workgroup = ICM 삼바 호스트가 참여할 워크 그룹에 대한 설정이다. 기존의 사용하는 워크 그룹이 있다면 그그룹으로 묶어 두면 될 것이다. server string = cyberlaw 파일 서버 삼바 서버의 설명을 표시하는 부분이다. veto files = /.?*/ .로 시작하는 히든 파일을 보이지 않도록 설정한다. 자기 홈 계정에 접속하면 클라이언트에서는별 필요 없는 히든 파일들이 보이기 때문에 상당히 사용하기가 불편하다. 이럴 때 사용하면좋다. client code page = 949 한국어를 보기 위해서는 코드 페이지를 949로 설정해 주어야 한다. hosts allow = 127. 210.122.59. 이 부분은 보안에 관련된 부분이다. 삼바를 아무곳에서나 접속할 수 있다면 좋지 않을 것이다.위의 설정은 자기 자신과 210.122.59. 대역의 C Class를 허가한 것이다. IP대신 도메인명도가능하다. load printers = yes 시스템에 부착된 프린터가 있을 경우 printcap에 정의한 프린터 목록이 자동으로 서비스 되게된다. 이것을 no로 했다면 일일이 설정을 다시 해주어야 한다. ; printcap name = /etc/printcap 기본값으로 주석처리가 되어 있는데 현재 위치가 기본값이다. 이 파일의 위치나 다른 파일로변경하고 싶다면 주석을 풀고 정확한 파일경로를 입력해 주면 된다. ; printcap name = lpstat 리눅스에서는 별 상관이 없는 옵션이다. SystemV 시스템에서는 printcap name 을 lpstat으로 해주면 SystemV 스풀 스템으로 부터 프린터 목록을 자동으로 얻는다. ; printing = bsd 시스템에 부착되어 있는 프린터가 프린팅 시스템 표준에서 벗어난 것이라면 다음 옵션의 주석을풀어 주어야 한다. 현재 지원하고 있는 프린트 시스템은 bsd, sysv, plp, lprng, aix,hpux, qnx 등이다. guest account = nobody 손님 사용자를 허가하는 설정이다. 주석처리를 하면 손님은 삼바를 사용할 수가 없게된다.nobody가 아닌 다른 유저로 설정할 경우에는 /etc/passwd 항목에 설정한 손님 사용자 계정을추가해야 한다. 이 계정은 일반 쉘로 로긴을 못하게 해놓는 것이 좋다. log file = /var/log/samba/log.%m 삼바에 접속하는 호스트 별로 개별적인 기록 파일을 만들도록 한다. "/var/log/samba/log.접근호스트이름"과 같은 파일명을 가지게 된다. %m 은 삼바 설정에서 사용되는 변수로 호스트명을 의미한다. max log size = 50 로그 파일 크기를 제한한다. 단위는 Kb이다. 너무 작아도 로긴한 흔적을 찾기 힘들지만 너무크게 잡아두었을 때도 괜한 공간의 낭비를 초래할 가능성이 있으므로 적절하게 유지하자. security = share 여기서 사용할 수 있는 옵션은 user, share, server 이 세가지이다. user 는 유닉스계정이름/패스워드 방식의 보안 등급이며 share는 워크그룹 포 윈도우즈(WfW)와 윈도95의기본 모드이다. 클라이언트들이 95,98,nt 일 경우 share로 해두도록 하자. 클라이언트를윈도우 95나 98을 사용한다면 필히 share로 해두어야 한다. 이 설정을 때문에 클라이언트에서접근을 못하는 사례를 많이 보았다. server의 경우에는 인증을 위해 NT 서버를 필요로 한다. ; password server = <NT 서버 이름> security = server로 설정했을 경우에 해당 NT 서버의 이름을 적어준다. ; password level = 8 ; username level = 8 패스워드와 유저이름을 대소문자 모든 조합에 대하여 8개의 문자로 이뤄진 패스워드를사용하도록 한다. null passwords = yes encrypt passwords = yes smb passwd file = /etc/smbpasswd 패스워드를 암호화 할 때 사용된다. 윈도우 98은 패스워드를 암호화해서 보내기 때문에 위와같이 설정해 주어야 한다.(윈도우 98의 레지스트리를 변환하여 플레인 텍스트로 암호를 변하게할 수도 있다. 그러나, 레지스트리 변환은 항상 위험하다.) 또 윈도우즈 NT 4.0 서비스 팩 3번 이상인 시스템에서도 마찬가지로 설정을 해주어야 한다. 이렇게 설정을 하고/etc/smbpasswd파일을 생성을 해주어야 한다. [smbpasswd 파일 생성] 다음과 같이 생성할 수 있다. $ cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd 기존 유닉스의 패스워드 파일을 삼바 패스워드 파일로 만들어준다. 쉐도우 패스워드를 사용해도마찬가지이다. 만약 yp(nis) 시스템을 사용한다면 다음과 같이 해주면 된다. $ ypcat passwd | mksmbpasswd.sh >/etc/smbpasswd $ ypcat passwd | mksmbpasswd.sh >/etc/smbpasswd /etc/smbpasswd가 생성이 되었는지 확인해 보자. 현재 패스워드는 기존 계정의 패스워드를가지고 왔을 것이다. 이것을 변경하기 위해서는 smbpasswd id 로 가능하다. $ smbpasswd webadmin New SMB password: Retype new SMB password: 파일이 제대로 생성되었는지 확인해 보자. # # SMB password file. # from104:543:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000: alias:524:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000: artsilly:560:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000: redhands:505:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000: webadmin:501:C13A3A0AD12D570279A61CFBC33276FB:3C65A79BFEF44A4A898C37E790D54FE5:[U ]:LCT-376FE216:홍길동,ICM, 위와 같은 형태로 생성이 되었다면 정상적으로 된 것이다. 일부 버전의 삼바에서mksmbpasswd.sh가 smbpasswd파일을 정상적으로 생성하지 못하는 버그를 가지고 있으니설정을 제대로 했음에도 불구하고 로긴을 하지 못한다면 위 패스워드 파일의 형식을 비교해봐서 다르다면 수정을 하도록 한다. ; unix password sync = Yes ; passwd program = /usr/bin/passwd %u ; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* 계정의 패스워드를 바꿀 때 삼바의 패스워드도 자동으로 갱신되도록 하고 싶을 때 사용한다.'encrypt passwords', 'smb passwd file'과 같이 사용해야 한다! username map = /etc/smbusers 리눅스 사용자 이름과 SMB 사용자 이름이 달라 둘 간의 이름이 다를 때, 이를 매칭 시켜주는역할을 한다. 기본적으로 윈도우 클라이언트에서 지정한 이름과 리눅스 사용자 이름이 같다면상관이 없다. 다를 경우 이 파일이 그 사용자임을 알려준다. 형식은 다음과 같다. /etc/smbusers # Unix_name = SMB_name1 SMB_name2 ... root = administrator admin nobody = guest pcguest smbguest webadmin = webadmin 홍길동 Hong Gildong webadmin이라는 계정 사용자 아이디를 webadmin, 홍길동, Hong gildong과 같은 것으로취급한다. 삼바 서버에 사용하는 계정이 webadmin인데 윈도우에 로긴하는 사용자명은홍길동이라면 위와 같은 설정을 해주면 같은 사용자로 인식하게 된다. 윈도우에 로긴하는사용자 명이 다를 때 사용하면 된다. ; include = /etc/smb.conf.%m 삼바의 설정파일을 접속하는 호스트마다 다르게 설정할 때 사용된다. 완전히 다른 설정을 해야한다면 옵션을 사용하면 될 것이다. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 대부분의 경우 다음 옵션을 주면 성능 향상 효과를 볼 수 있습니다. 여러 가지 옵션을 사용할수 있으나 이 옵션이 가장 빠른 성능을 보여 주였다. ; interfaces = 192.168.12.2/24 192.168.13.2/24 삼바가 여러 개의 이더넷 카드를 가지고 있는 경우 해당 이더넷을 사용하도록 설정한다.여러 개의 네트웍 인터페이스를 가지고 있다면, 그 인터페이스들을 모두 기록해주어야 한다.위의 예는 삼바 서버가 192.168.12.2, 192.168.13.2 이렇게 두 개의 주소를 가지고 있고24 비트 즉 넷마스크 255.255.255.0 를 사용하여 192.168.12.0, 192.168.13.0 네트웍의호스트에 대해서 열려 있다는 것이다. remote browse sync = 210.122.59.255 원격 브라우즈 목록과의 동기화에 관한 설정이다. 위의 설정은 210.122.59.1-254까지의호스트를 동기화 한다는 설정이다. remote announce = 210.122.59.255 삼바 서버가 네트웍 상에서 잘 보이지 않는다면 위와 같은 설정을 해주는 것이 좋다.210.122.59.1-254까지의 호스트들에게 자기 자신을 알리는 역할을 한다. ; domain master = yes domain master 는 삼바로 하여금 도메인 마스터 브라우저가 되도록 한다. 삼바는서브넷으로부터 브라우즈 목록을 모으는 작업을 하게 된다. 이미 이 기능을 담당하고 있는윈도우즈 NT 도메인 컨트롤러가 있다면 이것을 사용해서는 안된다. ; domain controller = <NT 도메인 컨트롤러 SMB 이름> 주 도메인 컨트롤러로 설정된 NT 서버가 존재할 때 사용한다. ; domain logons = yes 삼바가 윈도우즈95 워크스테이션에 대한 도메인 로그온 서버 역할을 하길 원하는 경우에사용한다. 마찬가지로 이미 NT 서버에서 그 역할을 하고 있다면 사용할 수 없다. ; wins support = yes ; wins server = w.x.y.z ; wins proxy = yes 윈도우즈 인터넷 네임 서비스 WINS 지원을 설정하는 부분이다. 윈도우 95나 98의 경우 외부네트웍에 존재할 경우 서로의 이름을 찾기 위해서는 WINS를 필요로 하는데 이것을 삼바서버에서처리해준다. 삼바는 WINS 서버 또는 클라이언트 중 하나만 될 수 있다. 그렇기 때문에 이미WINS 서버가 구성이 되어 있다면 이것을 사용해서는 안된다. WINS 프록시를 설정하게 되면삼바로 하여금 WINS 기능을 갖추지 못한 클라이언트를 대신하여 이름에 해당하는 주소를 찾도록도와준다. 이것을 사용하기 위해서는 당연한 말이겠지만 적어도 한 개 이상의 WINS 서버가있어야 한다. wins support에 Yes를 했다면, /etc/lmhosts파일에 해당 호스트들의 IP와도메인을 >적어주어야 한다. 형식은 다음과 같다. /etc/lmhosts # IP 주소 호스트이름 127.0.0.1 localhost 210.122.59.21 yomyom 210.122.59.28 webdmin dns proxy = no 삼바 서버를 외부에 제공하지 않는다면 굳이 dns를 사용할 필요는 없을 것이다. 기본값으로사용하는 것이 바람직하다. preserve case = yes short preserve case = yes 삼바 서버에서 대소문자를 사용하기 위한 설정이다. 한글을 제대로 보기 위해서는 이 구분이필요하며, 각 디렉토리 공유별로 따로 설정이 가능하다. 여기 까지는 삼바의 공통된 설정 세션이었다. 다음부터 나오는 것이 공유를 위한 설정이 된다.사용자 홈을 공유하고 또는 특정한 작업을 위한 공유를 지정할 수도 있고, 웹 디자이너를 위해서웹 서비스를 하고 있는 디렉을 공유해서 Ftp나 텔넷을 사용하지 않고 윈도우 클라이언트에서바로 작업한 내용을 저장할 수 있을 것이다. ② [homes] 부분 [homes] comment = 홈 디렉토리 browseable = no writable = yes 사용자 홈 계정에 대한 공유 설정이다. 리눅스 시스템의 사용자 계정과 윈도우 로그인 사용자계정이 일치 할 때 접근이 허용된다. 그렇지 않을 경우 위에서 설정한 smbusers 파일에서 사용자를 매칭 시켜주어야 한다. ③ [netlogon] 부분 ; [netlogon] ; comment = Network Logon Service ; path = /home/netlogon ; guest ok = yes ; writable = no ; share modes = no 도메인 로그온을 위한 netlogin 공유 디렉설정이다. 물론 도메인 로그온 기능을 지원할 때만사용가능하다. ④ [printers] 부분 [printers] comment = 모든 프린터 path = /var/spool/samba browseable = no guest ok = yes writable = no printable = yes BSD 스타일의 프린트 시스템(현재 대부분의 리눅스 시스템)이라면 각각의 프린터를 정의해 줄필요 없이 위에서 설정한 방식으로 자동으로 이루어 진다. guest ok = yes 라고 하면'guest account'로 지정한 사용자 여기서는 nobody 들이 프린팅을 할 수 있다.guest ok = yes를 public = yes로 표시할 수 있다. ⑤ [public] 부분 자 이제부터 하나 하나 공유 설정을 해보도록 하자. 먼저 모든 사용자에게 쓸 수 있는 public공유를 설정해 보자. [public] comment = 공용디렉토리 path = /public public = yes only guest = yes writable = yes printable = yes comment는 공유 디렉에 대한 설명을 줄 수가 있다. path는 공유할 디렉토리를 정의해준다./public는 소유권이 nobody(위에서 설정한 guest 사용자ID)가 되어 있어야 사용자들이 쓸 수있다. $ chown nobody.nobody /public public = yes가 되어 있기 때문에 모든 사용자에게 이 공유가 접근이 허용된다.writable = yes가 되어 있으므로 모든 사용자가 쓰기 권한이 있다. 다음엔 쓰기 권한은 주지 않고 사용자에게 일방적으로 제공만 하는 공유를 구성해보자.이런 공유는 자료실 같은 곳으로 활용하면 좋다. 자료를 등록할 수 있는 관리자만 쓰기 권한을 주고 나머지 사용자는 읽기만 가능하게 설정하는것이다. ⑥ [pds] 부분 [pds] comment = 자료실 path = /pds public = yes 아주 간단하게 설정이 된다. 위와 같은 설정이 있다면 자료실에 쓰기 권한 있는 사용자 공유를 하나 만들어야 한다. ⑦ [pdsw] 부분 [pdsw] comment = 자료실쓰기 path = /pds valid users = webadmin public = no writable = yes printable = no create mask = 0765 아까와 다른 것은 valid users = webadmin이 추가되었다는 것이다. 이것이 한 사용자에게만쓰기 사용권한을 준 것이다. ⑧ [web] 부분 이번엔 웹 디자이너들을 위해서 웹 서버 디렉을 공유 해 보도록 하자. [web] comment = Web Server path = /home/httpd/html valid users = yomyom urstory public = no writable = yes printable = no create mask = 0765 위의 설정은 웹 서버를 디자이너의 클라이언트에 열어준 것이다. 해당 디렉터리는 yomyom과urstory란 사용자에게 쓰기 권한이 있어야 한다. 이렇게 설정을 해놓으면 디자이너들은 자신의클라이언트에서 바로 웹 서버에 접근해서 파일을 수정하거나 등록할 수가 있다. 여기까지 삼바의 설정은 다 했다고 할 수 있다. 이 설정에 문제가 있는지 체크해 보고 문제가없다면 삼버서버를 리스타트시켜 보자.7. 설정 테스트
삼바 설정을 테스트 할 수 있는 명령어가 있습니다.
$ testparm
을 입력해 보면 다음과 같은 결과를 볼 수 있습니다. 다음과 제 컴퓨터에서 실행 시킨 결과
입니다.
Load smb config files from /etc/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[tmp]" No path in service tmp - using /tmp Loaded services file OK. Press enter to see a dump of your service definitions # Global parameters [global] workgroup = 지능정보시스템 연구실 netbios name = netbios aliases = server string = 기열이꺼 interfaces = bind interfaces only = No security = USER encrypt passwords = No update encrypted = No allow trusted domains = Yes hosts equiv = min passwd length = 5 map to guest = Never null passwords = Yes password server = smb passwd file = /etc/smbpasswd root directory = / passwd program = /bin/passwd passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\n *changed* passwd chat debug = No username map = password level = 0 username level = 0 unix password sync = No restrict anonymous = No use rhosts = No log level = 2 syslog = 1 syslog only = No log file = /var/log/samba/log.%m max log size = 50 timestamp logs = Yes protocol = NT1 read bmpx = No read raw = Yes write raw = Yes nt smb support = Yes nt pipe support = Yes nt acl support = Yes announce version = 4.2 announce as = NT max mux = 50 max xmit = 65535 name resolve order = lmhosts host wins bcast max packet = 65535 max ttl = 259200 max wins ttl = 518400 min wins ttl = 21600 time server = No change notify timeout = 60 deadtime = 0 getwd cache = Yes keepalive = 300 lpq cache time = 10 max disk size = 0 max open files = 10000 read prediction = No read size = 16384 shared mem size = 1048576 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 stat cache size = 50 load printers = Yes printcap name = /etc/printcap printer driver file = /etc/printers.def strip dot = No character set = mangled stack = 50 coding system = client code page = 949 stat cache = Yes domain groups = domain admin group = domain guest group = domain admin users = domain guest users = machine password timeout = 604800 add user script = delete user script = logon script = logon path = \\%N\%U\profile logon drive = logon home = \\%N\%U domain logons = No os level = 0 lm announce = Auto lm interval = 60 preferred master = No local master = Yes domain master = No browse list = Yes dns proxy = No wins proxy = No wins server = wins support = No kernel oplocks = Yes ole locking compatibility = Yes oplock break wait time = 10 smbrun = /usr/bin/smbrun config file = preload = lock dir = /var/lock/samba default service = message command = dfree command = valid chars = remote announce = remote browse sync = socket address = 0.0.0.0 homedir map = time offset = 0 unix realname = No NIS homedir = No panic action = comment = path = alternate permissions = No revalidate = No username = guest account = nobody invalid users = valid users = admin users = read list = write list = force user = force group = read only = Yes create mask = 0744 force create mode = 00 security mask = 037777777777 force security mode = 037777777777 directory mask = 0755 force directory mode = 00 directory security mask = 037777777777 force directory security mode = 037777777777 guest only = No guest ok = No only user = No hosts allow = 165.194.19. 127. hosts deny = status = Yes max connections = 0 min print space = 0 strict sync = No sync always = No print ok = No postscript = No printing = bsd print command = lpr -r -P%p %s lpq command = lpq -P%p lprm command = lprm -P%p %j lppause command = lpresume command = queuepause command = queueresume command = printer name = printer driver = NULL printer driver location = default case = lower case sensitive = No preserve case = Yes short preserve case = Yes mangle case = No mangling char = ~ hide dot files = Yes delete veto files = No veto files = hide files = veto oplock files = map system = No map hidden = No map archive = Yes mangled names = Yes mangled map = browseable = Yes blocking locks = Yes fake oplocks = No locking = Yes mangle locks = Yes oplocks = Yes level2 oplocks = No oplock contention limit = 2 strict locking = No share modes = Yes copy = include = exec = postexec = root preexec = root postexec = available = Yes volume = fstype = NTFS set directory = No wide links = Yes follow symlinks = Yes dont descend = /proc,/dev magic script = magic output = delete readonly = No dos filetimes = No dos filetime resolution = No fake directory create times = No [homes] comment = 홈 디렉토리 read only = No browseable = No [printers] comment = 모든 프린터 path = /var/spool/samba guest ok = Yes print ok = Yes browseable = No [tmp] path = /tmp대충 이런식으로 나온다는 것만 알아 두시면 되겠죠.
8. 삼바 관리 툴 - SWAT
위 과정은 익숙하지 않은 사람에게는 대단히 힘든 작업이 됩니다. 이걸 좀더 쉽게 하기위한
툴이 여러가지가 나와 있습니다. 그중 하나가 swat입니다. 웹 기반의 고나리 툴이죠.
이것은 /etc/inetd.conf에서 관리를 하며 901포트를 이용해 관리 합니다.
/etc/inetd.conf의 거의 마지막 부분에 보면 다음과 같은 줄이 있습니다. 아마 주석 처리가
되어 있을 텐데 주석을 제거 합니다.
swat stream tcp nowait.400 root /usr/sbin/swat swat
그 다음에는 /etc/services 파일엘 swat포트가 등록되어 있는지 확인합니다. 혹시 없다면
다음과 같이 추가 합니다.
swat 901/tcp
위와 같이 수정하고 inetd을 재 시동합니다.
웹 브라우저를 띄우고, http://localhost:901/에 접속을 합니다. 사용자 ID와 패스워드에
root와 루트의 패스워드를 써 줍니다.
그러면 다음과 같은 화면이 나옵니다.
여기에서 설정을 하면 됩니다. 항목에 대한 설명은 위에서 설명한 것을 참고 하시면 됩니다.
10. 참고1 : smb.conf (번역 : 이만용 )
다음은 이만용씨가 번역한 smb.conf 파일입니다. 특별한 설명이 없이도 주석 만으로 설정이
가능하도록 자세히 씌여 있습니다. 참고 하여 보시길 바람니다. 아마 여러분의 컴퓨터에도 이
파일이 들어 있을 가능성이 높습니다. 확인 안해 봐서 장담은 못하겠지만 말이죠...
# # 이 파일은 삼바의 주요 설정 파일입니다. 앞으로 나오는 옵션들을 이해하기 # 위해서는 smb.conf(5) 맨 페이지를 꼼꼼히 읽어보시기 바랍니다. # 삼바에는 방대한 양의 설정 옵션이 있지만(어떻게 보면 너무 많다고 생각하실 # 수 있습니다) 다음 예에서는 보여지지 않는 것들이 많습니다. # # ; (세미 콜론) 또는 # (해쉬) 로 시작하는 줄은 모두 주석이며 무시합니다. # 다음 예에서는 주석에 대하여 # 를 사용하며 여러분이 작동시기킬 원할 지 # 모르는 옵션에 대해서는 ; 문자로 구별하여 처리하였습니다. # # 주의: 설정 파일을 수정하고 나서는 기본적인 문법 오류 여부를 검사하기 # 위해 "testparm" 명령을 실행해보십시오. # # 번역자 : 이 만 용 <geoman@nownuri.net> # <kenobi@alzzalinux.com> # <yong@korealinux.co.kr> # # # 오역을 발견하시거나 추천할 사항이 있으시면 위 메일 주소로 연락을 주십시오. # 그 이외의 일반적인 질문에 대해서는 답변하지 않습니다. # #======================= 전체 설정 =========================================== [global] # workgroup = NT 도메인 이름 또는 워크그룹 이름 workgroup = RICS연구실 # 나의 정의 ; hide dot files = yes ; veto files = /.?*/ ; netbios aliases = KLB ANNA dont descend = /proc,/dev ; time server = true ; sync always = yes # server string 은 란 NT 설명 필드와 같은 것입니다. server string = 기열이꺼 # 클라이언트 코드 페이지 (한국어 = 949) client code page = 949 # 이 옵션은 보안과 관련하여 중요한 것입니다. 이 옵션을 통해 여러분의 근거리 # 네트웍에 있는 호스트에게만 접근을 허용할 수 있습니다. # 다음 예는 2 개의 C 클래스 네트웍과 "loopback" 인터페이스에 대해서만 # 접근을 허용하고 있습니다. 문법 예는 smb.conf 맨페이지를 참고하시기 바랍니다. hosts allow = 165.194.19. 127. # 프린터 설정을 개별적으로 하지 않고 자동으로 프린터 목록을 포함시키길 # 원한다면 다음 옵션을 사용합니다. # printcap 에서 정의한 프린터 목록이 자동으로 등록됩니다. # load printers = no 이면 하나하나 정해주셔야 합니다. load printers = yes # printcap 파일의 위치를 새롭게 지정하고 싶을 때 사용하십시오. ; printcap name = /etc/printcap # SystemV 시스템에서는 printcap name 을 lpstat 으로 해주면 SystemV 스풀 # 시스템으로부터 프린터 목록을 자동으로 얻게 해줍니다. ; printcap name = lpstat # 여러분의 프린팅 시스템이 표준에서 벗어난 것이 아니라면 다음 옵션의 주석을 # 풀 필요가 없습니다. 현재 지원하고 있는 프린트 시스템은 # bsd, sysv, plp, lprng, aix, hpux, qnx 등입니다. ; printing = bsd # 손님 사용자를 허가하고 싶을 때는 다음 행의 주석을 풀어줍니다. # nobody 가 아닌 경우에는 /etc/passwd 항목에 설정한 손님 사용자 계정을 추가 # 해야 합니다. useradd 명령으로 사용자를 만드십시오. guest account = nobody # 다음은 삼바로 하여금 자신에 접속하는 호스트 별로 개별적인 기록 파일을 # 만들도록 지시합니다. # "/var/log/samba/log.접근호스트이름"과 같은 파일명을 가집니다. # %m 은 삼바 설정에서 사용되는 특수한 변수입니다. log file = /var/log/samba/log.%m # 로그 파일 크기의 상한선을 Kb 단위로 설정합니다. max log size = 50 # 보안 모드입니다. 대부분의 사람들에겐 user 레벨의 보안이 맞습니다. # 자세한 내용은 security_level.txt 문서를 참고하십시오. # 참고로 user 는 유닉스 계정이름/패스워드 방식의 보안 등급이며 # share는 워크그룹 포 윈도우즈(WfW)와 윈도95의 기본 모드입니다. # server의 경우에는 인증을 위해 NT 서버가 필요합니다. security = user # security = server 인 경우에만 패스워드 서버를 설정합니다. ; password server = <NT 서버 이름> # 패스워드 레벨에서는 대소문자 모든 조합에 대하여 _n_ 개의 문자로 이뤄진 # 패스워드를 사용하도록 합니다. ; password level = 8 ; username level = 8 # 패스워드 암호화를 사용하고 싶을 때가 있을 겁니다. 삼바 문서 중에서 # ENCRYPTION.txt, Win95.txt, WinNT.txt 를 꼭 읽어보시기 바랍니다. # 이 문서를 착실히 읽지 않은 상태에서 다음 옵션을 설정하지 마십시오. # 윈도우즈NT 4.0 서비스 팩 3 번 이상인 시스템에서는 패스워드 암호화가 # 필요합니다. ; encrypt passwords = yes ; smb passwd file = /etc/smbpasswd null passwords = yes # 다음 설정은 윈도우즈에서 패스워드를 바꿀 때 리눅스 시스템의 패스워드도 # 자동으로 갱신되도록 하고 싶을 때 사용한다. # 주의 사항 : 위에 있는 'encrypt passwords', 'smb passwd file'과 같이 # 사용해야 한다!!! # 주의 사항2: 워크스테이션으로부터 암호화된 SMB 패스워드만 변경할 수 # 있도록 할 때에는 필요없는 사항이다. # 유닉스 패스워드와 SMB 패스워드가 항상 동일한 상태를 # 유지하도록 할 때에만 필요하다! ; unix password sync = Yes ; passwd program = /usr/bin/passwd %u ; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # 유닉스 사용자 이름과 SMB 사용자 이름이 달라 둘 간의 연관 테이블을 # 필요할 때 사용합니다. ; username map = /etc/smbusers # 다음 옵션은 접속하는 각 머신마다 서로 다른 설정을 원할 때 사용합니다. # 여기서 %m 은 접속하는 호스트의 NetBIOS 이름으로 대체됩니다. ; include = /etc/smb.conf.%m # 대부분의 경우 다음 옵션을 주면 성능 향상 효과를 볼 수 있습니다. # 자세한 사항은 speed.txt 와 맨 페이지를 참고하십시오. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # 삼바가 여러 개의 인터페이스를 사용하도록 설정합니다. # 여러 개의 네트웍 인터페이스를 가지고 있다면 그 인터페이스들을 모두 # 나열하십시오. 자세한 사항은 맨 페이지를 참고하십시오. # 다음 예는 삼바 서버가 192.168.12.2, 192.168.13.2 이렇게 두 개의 주소를 # 가지고 있고 24 비트 즉 넷매스크 255.255.255.0 를 사용하여 # 192.168.12.0, 192.168.13.0 네트웍의 호스트에 대해서 받아들입니다. ; interfaces = 192.168.12.2/24 192.168.13.2/24 # 원격 브라우즈 목록과의 동기화에 관한 설정입니다. # 공표 요청을 하거나 또는 브라우즈 목록 동기화해 줄 대상: # 특정 호스트 또는 전체 서브넷을 지정할 수 있습니다. # (아래 참고) ; remote browse sync = 192.168.3.25 192.168.5.255 # 지역적인 서브넷에 자기 자신을 공표하도록 설정합니다. # 윈도우즈 네트웍 환경에서 삼바 서버가 잘 보이도록 할 때 유용합니다. ; remote announce = 192.168.1.255 192.168.2.44 # 브라우져 제어 옵션: # 삼바가 네트웍에 대한 매스터가 되길 바라지 않으면 local master 설정을 # no 로 하십시오. 그렇지 않은 경우에는 일반적인 선거 규칙을 따릅니다. ; local master = no # OS 레벨은 매스터 브라우져 선거 과정에서 서버의 우선권을 결정합니다. # 기본값이 적절합니다. 따라서 특별히 바꿀 이유가 없습니다. ; os level = 33 # domain master 는 삼바로 하요금 도메인 매스터 브라우져가 되도록 해줍니다. # 삼바는 서브넷들로부터 브라우즈 목록을 모으는 작업을 하게 됩니다. # 이미 이 기능을 담당하고 있는 윈도우즈 NT 도메인 컨트롤러가 있다면 이것을 # 사용해서는 안됩니다. ; domain master = yes # preferred master 옵션을 켜두면 시동할 때 지역 브라우져 선거를 하도록 # 만들고 선거에서 이길 수 있는 좀 더 높은 기회를 부여받습니다. ; preferred master = yes # 설치할 때 주 도메인 컨트롤러로 설정된 NT 서버가 존재할 때만 사용합니다. ; domain controller = <NT 도메인 컨트롤러 SMB 이름> # 삼바가 윈도우즈95 워크스테이션에 대한 도메인 로그온 서버 역할을 하길 # 원하는 경우 켜둡니다. ; domain logons = yes # 도메인 로그온을 선택했고 각 머신 별로 또는 각 사용자 별로 로그온 스크립트를 # 구분하여 특정 배치 파일을 작동시키길 원하는 경우 사용합니다. ; logon script = %m.bat # 사용자 이름에 의거하여 서로 다른 로그온 배치 파일을 실행시킬 때 ; logon script = %U.bat # 로우빙 프로파일(roving profile)을 어디에 저장할 것인가? # (Win95와 WinNT에만 해당됩니다.) # %L 은 서버의 NetBIOS 이름으로, %U는 사용자 이름으로 대체됩니다. # 뒤에 나오는 [Profiles] 공유에 있는 주석을 풀어주는 것을 잊지 # 않도록 하십시오. ; logon path = \\%L\Profiles\%U # 윈도우즈 인터넷 네임 서비스 WINS 지원 섹션: # 주의: /etc/lmhosts를 만들어 마치 /etc/hosts와 같이 적습니다. # 예) # 192.168.0.1 ANNA ; wins support = yes # WINS 서버 - 삼바의 NMBD 로 하여금 WINS 클라이언트가 되도록 합니다. # 주의 : 삼바는 WINS 서버 또는 클라이언트 중 하나만 될 수 있다. ; wins server = w.x.y.z # WINS 프록시 - 삼바로 하여금 WINS 기능을 갖추지 못한 클라이언트를 대신하여 # 이름에 해당하는 주소 찾기 질문을 대신 답하도록 합니다. # 이를 위해서는 네트웍 상에 적어 한 개 이상의 WINS 서버가 있어야 합니다. # 기본값은 NO ; wins proxy = yes # DNS 프록시 - 삼바로 하여금 DNS nslookup 을 사용하여 NetBIOS 이름을 찾을 # 것인지 아닌지 지시합니다. # 1.9.17 버전에서는 내부 기본값이 yes 였으나 1.9.18 버전에서는 no 로 # 변경되었습니다. dns proxy = no # 대소문자 보존이 필요할 때가 있습니다. 시스템 기본값은 NO 입니다. # 주의: 각 공유별로 설정할 수 있습니다. # 한글을 제대로 보기 위해서는 구별해야 합니다. preserve case = yes short preserve case = yes # 도스 파일에 대한 기본 문자는 대문자입니다. ; default case = lower # 대소문자 구별은 주의를 요합니다. - 문제를 일으킬 수도 있습니다! ; case sensitive = no #============================ 공유 정의 ====================================== [homes] comment = 홈 디렉토리 browseable = no writable = yes ; create mode = 0750 ; invalid users = root # 도메인 로그온을 위한 netlogin 디렉토리를 만들고 주석 해제합니다. # 물론 도메인 로그온 기능을 지원할 때만 필요합니다. ; [netlogon] ; comment = Network Logon Service ; path = /home/netlogon ; guest ok = yes ; writable = no ; share modes = no # 특정한 로우빙 프로파일(roving profile) 공유를 제공하고자 한다면 다음의 # 주석을 풀어주십시오. # the default is to use the user's home directory # 기본값은 사용자의 홈 디렉토리입니다. ;[Profiles] ; path = /home/profiles ; browseable = no ; guest ok = yes # 주의: BSD 스타일의 프린트 시스템(현재 대부분의 리눅스 시스템이 그러함) # 이라면 각각의 프린터를 정의해 줄 필요 없이 자동으로 이뤄집니다. [printers] comment = 모든 프린터 path = /var/spool/samba browseable = no # guest ok = yes 라고 하면 'guest account'로 지정한 사용자들이 프린팅을 # 할 수 있습니다. public = yes 도 같은 표현입니다. guest ok = yes writable = no printable = yes # 다음은 사람들이 파일을 공유할 수 있도록 할 때 유용합니다. # 주의: /tmp 는 시스템의 임시 작업 공간이므로 /var/tmp 와 같은 곳에 # 커다란 파티션을 마운트하고 그곳을 사용하도록 하는 것이 좋습니다. # 지금부터는 임의로 정의 가능한 공유 설정의 예입니다. 다음 설정들을 보면서 # 여러분이 원하는 공유를 정의해보시기 바랍니다. [tmp] ; comment = 임시 파일 공간 ; path = /tmp ; read only = no ; public = yes # 공개적으로 접근 가능한 디렉토리이지만 읽기만 가능하고 "staff" 그룹에 # 속한 사용자들만이 쓰기를 할 수 있는 설정의 예입니다. ;[public] ; comment = Public Stuff ; path = /home/samba ; public = yes ; writable = yes ; printable = no ; write list = @staff # 기타 다른 예. # 조금은 특정 용도에 맞는 상세한 설정 예입니다. # # fred 라는 사용자만 이용할 수 있는 개인적인 프린터 설정. # 스풀 자료는 fred 의 홈 디렉토리에 씌여집니다. # fred 는 지정한 스풀 디렉토리에 쓰기 권한을 가지고 있는 상태여야 합니다. ;[fredsprn] ; comment = Fred 전용 프린터 ; valid users = fred ; path = /homes/fred ; printer = freds_printer ; public = no ; writable = no ; printable = yes # fread 만이 이용할 수 있는 개인적인 디렉토리 설정입니다. # 디렉토리에 대하여 fred 의 쓰기 권한이 있는 상태여야 합니다. ;[fredsdir] ; comment = Fred 개인 서비스 ; path = /usr/somewhere/private ; valid users = fred ; public = no ; writable = yes ; printable = no # 접속하는 머신에 따라 서로 다른 디렉토리를 제공하는 서비스의 좋은 예입니다. # 이렇게 함으로써 접속 머신에 따라 실제 설정 내용이 달라지는 효과를 얻을 수 # 있습니다. 사용자 이름으로 구별하려면 %u 옵션을 대신 사용하면 됩니다. # %m 은 접속하는 머신의 이름으로 치환됩니다. ;[pchome] ; comment = PC 디렉토리 ; path = /usr/pc/%m ; public = no ; writable = yes # 모든 사용자가 읽고 쓸 수 있는 공개 접근 디렉토리의 예입니다. # 생성되는 모든 파일은 기본 사용자의 소유가 되므로 다른 사용자가 여러분이 만든 # 파일을 지울 수 있습니다. 당연히 주어진 디렉토리에 대하여 기본 사용자가 # 쓰기 권한을 가지고 있어야 합니다. 다른 사용자를 명시하면 기본 사용자가 아닌 # 그 사용자의 소유가 됩니다. ;[public] ; path = /usr/somewhere/else/public ; public = yes ; only guest = yes ; writable = yes ; printable = no # 다음 항목은 두 사용자가 어떻게 한 디렉토리를 공유하여 사용하게 할 수 있는지 # 예시하고 있습니다. 이 설정이 제대로 작동하려면 디렉토리는 두 사용자에 의해 # 쓰기 가능해야 하며 스틱키(sticky) 비트를 설정하여 서로의 파일에 대하여 # 악의적인 행동을 취할 수 없도록 해줘야 합니다. 이런 방법으로 여러 사용자가 # 한 디렉토리를 안전하게 공유하도록 확장할 수 있습니다. ;[myshare] ; comment = Mary와 Fred의 것 ; path = /usr/somewhere/shared ; valid users = mary fred ; public = no ; writable = yes ; printable = no ; create mask = 0765 ;[WWW] ; comment = 웹 페이지 디렉토리 ; path = /www/htdocs ; read only = no
11. 참고 2 : smb.conf(영문)
구경하시는 김에 영문도...
# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" # to check that you have not many any basic syntactic errors. # #======================= Global Settings ===================================== [global] # workgroup = NT-Domain-Name or Workgroup-Name workgroup = MYGROUP # server string is the equivalent of the NT Description field server string = Samba Server # This option is important for security. It allows you to restrict # connections to machines which are on your local network. The # following example restricts access to two C class networks and # the "loopback" interface. For more examples of the syntax see # the smb.conf man page ; hosts allow = 192.168.1. 192.168.2. 127. # if you want to automatically load your printer list rather # than setting them up individually then you'll need this printcap name = /etc/printcap load printers = yes # It should not be necessary to spell out the print system type unless # yours is non-standard. Currently supported print systems include: # bsd, sysv, plp, lprng, aix, hpux, qnx ; printing = bsd # Uncomment this if you want a guest account, you must add this to /etc/passwd # otherwise the user "nobody" is used ; guest account = pcguest # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/log.%m # Put a capping on the size of the log files (in Kb). max log size = 50 # Security mode. Most people will want user level security. See # security_level.txt for details. security = user # Use password server option only with security = server ; password server = <NT-Server-Name> # Password Level allows matching of _n_ characters of the password for # all combinations of upper and lower case. ; password level = 8 ; username level = 8 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents ; encrypt passwords = yes ; smb passwd file = /etc/smbpasswd # The following are needed to allow password changing from Windows to # update the Linux sytsem password also. # NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above. # NOTE2: You do NOT need these to allow workstations to change only # the encrypted SMB passwords. They allow the Unix password # to be kept in sync with the SMB password. ; unix password sync = Yes ; passwd program = /usr/bin/passwd %u ; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # Unix users can map to different SMB User names ; username map = /etc/smbusers # Using the following line enables you to customise your configuration # on a per machine basis. The %m gets replaced with the netbios name # of the machine that is connecting ; include = /etc/smb.conf.%m # Most people will find that this option gives better performance. # See speed.txt and the manual pages for details socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. ; interfaces = 192.168.12.2/24 192.168.13.2/24 # Configure remote browse list synchronisation here # request announcement to, or browse list sync from: # a specific host or from / to a whole subnet (see below) ; remote browse sync = 192.168.3.25 192.168.5.255 # Cause this host to announce itself to local subnets here ; remote announce = 192.168.1.255 192.168.2.44 # Browser Control Options: # set local master to no if you don't want Samba to become a master # browser on your network. Otherwise the normal election rules apply ; local master = no # OS Level determines the precedence of this server in master browser # elections. The default value should be reasonable ; os level = 33 # Domain Master specifies Samba to be the Domain Master Browser. This # allows Samba to collate browse lists between subnets. Don't use this # if you already have a Windows NT domain controller doing this job ; domain master = yes # Preferred Master causes Samba to force a local browser election on startup # and gives it a slightly higher chance of winning the election ; preferred master = yes # Use only if you have an NT server on your network that has been # configured at install time to be a primary domain controller. ; domain controller = <NT-Domain-Controller-SMBName> # Enable this if you want Samba to be a domain logon server for # Windows95 workstations. ; domain logons = yes # if you enable domain logons then you may want a per-machine or # per user logon script # run a specific logon batch file per workstation (machine) ; logon script = %m.bat # run a specific logon batch file per username ; logon script = %U.bat # Where to store roving profiles (only for Win95 and WinNT) # %L substitutes for this servers netbios name, %U is username # You must uncomment the [Profiles] share below ; logon path = \\%L\Profiles\%U # All NetBIOS names must be resolved to IP Addresses # 'Name Resolve Order' allows the named resolution mechanism to be specified # the default order is "host lmhosts wins bcast". "host" means use the unix # system gethostbyname() function call that will use either /etc/hosts OR # DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf # and the /etc/resolv.conf file. "host" therefore is system configuration # dependant. This parameter is most often of use to prevent DNS lookups # in order to resolve NetBIOS names to IP Addresses. Use with care! # The example below excludes use of name resolution for machines that are NOT # on the local network segment # - OR - are not deliberately to be known via lmhosts or via WINS. ; name resolve order = wins lmhosts bcast # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server ; wins support = yes # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z # WINS Proxy - Tells Samba to answer name resolution queries on # behalf of a non WINS capable client, for this to work there must be # at least one WINS Server on the network. The default is NO. ; wins proxy = yes # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The built-in default for versions 1.9.17 is yes, # this has been changed in version 1.9.18 to no. dns proxy = no # Case Preservation can be handy - system default is _no_ # NOTE: These can be set on a per share basis ; preserve case = no ; short preserve case = no # Default case is normally upper case for all DOS files ; default case = lower # Be very careful with case sensitivity - it can break things! ; case sensitive = no #============================ Share Definitions ============================== [homes] comment = Home Directories browseable = no writable = yes # Un-comment the following and create the netlogon directory for Domain Logons ; [netlogon] ; comment = Network Logon Service ; path = /home/netlogon ; guest ok = yes ; writable = no ; share modes = no # Un-comment the following to provide a specific roving profile share # the default is to use the user's home directory ;[Profiles] ; path = /home/profiles ; browseable = no ; guest ok = yes # NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = no writable = no printable = yes # This one is useful for people to share files ;[tmp] ; comment = Temporary file space ; path = /tmp ; read only = no ; public = yes # A publicly accessible directory, but read only, except for people in # the "staff" group ;[public] ; comment = Public Stuff ; path = /home/samba ; public = yes ; writable = yes ; printable = no ; write list = @staff # Other examples. # # A private printer, usable only by fred. Spool data will be placed in fred's # home directory. Note that fred must have write access to the spool directory, # wherever it is. ;[fredsprn] ; comment = Fred's Printer ; valid users = fred ; path = /homes/fred ; printer = freds_printer ; public = no ; writable = no ; printable = yes # A private directory, usable only by fred. Note that fred requires write # access to the directory. ;[fredsdir] ; comment = Fred's Service ; path = /usr/somewhere/private ; valid users = fred ; public = no ; writable = yes ; printable = no # a service which has a different directory for each machine that connects # this allows you to tailor configurations to incoming machines. You could # also use the %u option to tailor it by user name. # The %m gets replaced with the machine name that is connecting. ;[pchome] ; comment = PC Directories ; path = /usr/pc/%m ; public = no ; writable = yes # A publicly accessible directory, read/write to all users. Note that all files # created in the directory by users will be owned by the default user, so # any user with access can delete any other user's files. Obviously this # directory must be writable by the default user. Another user could of course # be specified, in which case all files would be owned by that user instead. ;[public] ; path = /usr/somewhere/else/public ; public = yes ; only guest = yes ; writable = yes ; printable = no # The following two entries demonstrate how to share a directory so that two # users can place files there that will be owned by the specific users. In this # setup, the directory should be writable by both users and should have the # sticky bit set on it to prevent abuse. Obviously this could be extended to # as many users as required. ;[myshare] ; comment = Mary's and Fred's stuff ; path = /usr/somewhere/shared ; valid users = mary fred ; public = no ; writable = yes ; printable = no ; create mask = 0765
12. 관련 문서 및 링크