리눅스는 SMB 서비스 (예를 들어, WfW, 윈95, NT 스타일의 네트웍 파일 & 프린터 공유) 를 삼바 패키지를 이용하여 제공한다. 이 섹션은 어떻게 공유를 설정하며 클라이언트 기계에서 어떻게 접근하여 활용할 수 있는지를 설명할 것이다.
삼바 패키지는 레드햇 배포판에 포함되어있는데 현재 설치가 되어 있는지 그리고 어떤 버전이 설치되어 있는지 알아보려면 다음과 같이 타이핑하면 된다:
rpm -q samba |
만약 설치되어 있지 않다면 RPM 유틸리티를 이용하여 설치하여야 한다. 이에 대한 상세한 내용은 10.1절 을 참조하면 된다.
신경을 써주어야 할 가장 중요한 삼바 파일은:
공유에 대한 사항과 그 외의 설정 파라메터가 셋업되어 있는 삼바 설정 파일 (자세한 내용은 아래를 보시요)
삼바 로그 파일이 있는 곳
파일 공유가 셋업될 것으로 예상되는 디렉토리. 물론 저장하려는 파일의 양에 적합한 충분한 공간이 있는 다른 장소를 선택할 수도 있다. 개인적으로 나는 보통 /archive/ 에 큰 파티션을 마운트하고 여기를 공유 공간으로 사용한다.
``/etc/smb.conf'' 파일은 파일 & 인쇄 공유에 대한 설정 정보를 갖고 있다. 파일의 처음 몇줄은 전체 설정에 대한 명령어로서 (각 섹션별로 별도로 지정하여 무시하지 않는 한) 모든 공유에 공통적으로 적용되는 것이고 그 다음에는 공유 섹션이 나온다.
삼바 설치 프로그램에는 디폴트 smb.conf 파일이 들어 있는데 상당수의 경우에 사용자의 요구에 적절하도록 되어 있기 때문에 아주 몇 줄만 수정해주면 된다.
다음에 파일의 예를 제시하였다 (이 파일은 중요하고 재미있는 옵션을 보여주기 위하여 심하게 손을 본 것이다):
# 모든 공유에 공통인 항목 (공유별로 덮어쓰지 않는 한) [global] # 자원을 소모하는 것을 막기 위하여 활동이 없으면 몇 분 후에 클라인트를 # 끊을 것인지 지정. 대부분의 클라이언트는 자동으로 재접속을 하기 때문에 # 이 기능을 사용하는 것이 좋다. dead time = 10 # 사용자가 "루트" 로 접속하는 것을 허용하지 않음, 만약을 위해서. :-) invalid users = root # 손님 공유 (연결하는데 패스워드가 필요없는 공유) 에 사용할 계정을 # 지정한다. 이 사용자 이름은 /etc/passwd 파일에 있는 정상적인 사용자 # 이름이어야 한다. guest account = guest # 로그 파일을 기록할 장소를 지정한다. "%m" 는 # 로그 파일의 이름이 log.기계이름 형식을 (예. "log.twixel") # 사용함을 나타낸다 log file = /usr/local/samba/logs/log.%m # 킬로 바이트 단위로 나타낸 로그 파일의 최대 크기 max log size = 1000 # 패스워드 레벨 3이란 패스워드를 입력할 때 대소문자를 구분하지 않음을 # 나타낸다. 레벨 1이나 2보다는 덜 안전하지만 사용자 편의를 위해서는 # 이 정도의 양보가 적당한 수준이다. password level = 3 # 모든 공유가 브라우즈 리스트에 나타남을 지정. # (공유중에서 리스트에 나타나지 않아야 할 것은 공유별로 지정하여준다) browseable = yes # 이 기능을 사용하면 "smbstatus" 명령을 이용하여 현재 # 사용중인 연결을 볼 수 있다. status = yes # 로그 파일에 기록되는 디버깅 정보의 레벨을 지정한다. 숫자가 클 수록 # 더 자세한 정보를 생성한다. (대부분의 경우에 많은 정보가 유용하지는 # 않다) debug level = 2 # 이 기능은 서버가 받은 모든 윈도 스타일의 "POPUP" 메시지 # 를 전자메일을 이용하여 포스트마스터에게 전송한다. 그리 유용하지는 # 않지만, 어떤 것까지 할 수 있는지를 보여주는 좋은 예시이다. message command = /bin/mail -s 'Message from %f on %m' postmaster < %s; rm %s & # 이는 캐싱의 일종으로서 사용할 경우 파일 읽기의 성능을 향상시킬 수 # 있다. read prediction = true # 자동으로 브라우즈 리스트에 추가되어야 할 서비스의 목록을 # 지정한다. auto services = cdrom # 프린터에 대한 정의를 담고 있는 텍스트 파일인 # "printcap" 파일의 위치를 지정. printcap name = /etc/printcap # 만약 사용하는 경우에는 /etc/printcap 파일에 들어있는 모든 프린터가 # 브라우즈 리스트에 들어간다. load printers = yes # 리눅스에서 프린터에 인쇄작업을 스풀시키는 인쇄 명령을 지정한다. print command = lpr -r -P%p %s # 인쇄작업 큐 정보 (프린터 상태) 를 가져오는데 사용하는 인쇄 명령을 # 지정한다. lpq command = lpq -P%p # 원하지 않는 인쇄 작업을 큐로부터 제거하는데 사용되는 프린트 명령을 # 지정한다. lprm command = lprm -P%p %j # 삼바가 자기 자신을 알리는 레벨을 지정한다. 네트웍에 떼거리로 붙어 # 있는 NT 서버와 공평한 수준에서 "공간" 을 확보하도록 # 하기 위하여 상당히 높게 하였다. :-) os level = 34 # 여기는 사용자별 개인 공유영역이다. 클라이언트의 사용자 이름이 서버에 # 있는 이름과 일치한다면 (맞는 패스워드만 입력하면) 자기의 홈 디렉토리를 # 액세스할 수 있다. [homes] # 브라우즈 리스트에 나타날 설명문을 지정한다 comment = Home Directories # 이는 클라이언트의 사용자 이름과 공유의 사용자 이름을 짝을 맞춘다. # 만약 짝이 맞지 않으면, 브라우즈 리스트에 아무런 공유도 보이지 # 않거나 연결할 수 있도록 나타난다. user = %S # 공유에 대한 경로를 지정한다. 예를 들어, "smithj" 는 # "/home/smithj" 로 매핑된다. path = /home/%S # 이를 사용하면 공유에 대하여 읽기/쓰기를 액세스를 허용한다. writeable = yes # "writeable" 를 그대로 뒤집은 것이다. 물론 둘다를 # *실제로* 사용할 필요는 없다. :-) read only = no # 이 공유를 액세스하기 위해서는 패스워드가 필요하게 하려면 이 기능을 # no 로 두면 된다. public = no # 이 공유가 다른 사용자의 브라우즈 리스트에 나타나게 하고 싶지 # 않음 (즉, 개인용) 을 나타낸다. browseable = no # 이는 모두 사용할 수 있는 공유 프린터 "hp_laser" 에 대한 # 내용이다. 이 프린터는 브라우즈 리스트에 나타나면 패스워드 없이 모든 # 클라이언트가 사용할 수 있다. [hp_laser] # 브라우즈 리스트에 나타날 설명을 지정한다. comment = Main office printer (HP Laserjet 400) # 이 공유를 액세스할 수 있는 사용자 이름 (guest는 모든 사용자라는 뜻). user = guest # 생성되는 모든 인쇄 파일은 처음에는 /tmp 디렉토리에 만들어 진다는 # 것을 지정. path = /tmp # 프린트 스풀링을 제외하고는 파일을 만드는 것을 허용하지 않는다. writeable = no # 필요에 따라 퍼미션을 지정한다 -- 인쇄 작업은 루트만이 액세스 가능함. create mode = 0700 # 이 기능을 사용하면 공유를 액세스할 때 패스워드가 필요없다. public = yes # 이 공유가 프린터 공유임을 나타내기 위하여 이를 yes 로 하여야 한다. printable = yes # 씨디롬 장치에 대한 액세스를 제공하는 서비스를 정의한다. [cdrom] comment = Shared CD-ROM drive on Linux user = guest path = /cdrom writeable = no read only = true browseable = yes public = yes guest ok = yes |
작은 정보: 팁: 최근 버전의 삼바, 2.0 이상, 에서는 삼바 설정 과정을 훨씬 편리하게 할 수 있는 ``swat'' 라는 이름의 매우 쓸만한 웹 기반의 설정 유틸리티가 제공된다. 이 유틸리티는 서버의 TCP 901 번 포트에서 접속을 기다린다. 따라서 이 유틸리티를 사용하려면 웹 브라우저에서 다음과 같이 연결하면 된다:
나의도메인.이름:901 |
(물론, SWAT 유틸리티를 사용하려면 아파치와 같은 웹 서버가 실행중이어야 한다. 자세한 내용은 7.1절 을 참조하시요.)
최근 버전의 삼바에는 2.0 이전과 비교하여 상당히 많은 기능을 추가되었다. 따라서 시간을 투자하여 삼바 패키지를 업그레이드할 만한 가치가 있다.
클라이언트는 공유에 연결하기 위하여 TCP/IP 네트웍 스택이 실행중이어야만 한다. 게다가, 브라우징 기능이 동작하려면, TCP/IP 프로토콜은 NETBEUI 와 엮여있어야 한다. 윈도 95 에서는 제어판에 있는 "네트워크" 아이콘을 이용하여 설정할 수 있다.
클라이언트가 제대로 설정되었다면, "네트워크 환경" 에 (윈도 95 나 NT 를 사용하고 있지않다면 그에 해당하는 브라우징 기능에) 서버의 공유가 나타나야 한다. 그러고 나면 네트워크 환경에서 네트웍 드라이브를 매핑하거나 공유의 절대 경로 (예."\\mail\cdrom") 를 타이핑하여 이용할 수 있다. 만약 공유 서비스가 패스워드의 입력을 필요로 하도록 되어 있다면, 입력하라는 프롬프트가 나타날 것이다.
삼바에 대한 더 자세한 정보는 http://samba.anu.edu.au/samba/ 에 있는 삼바 홈 페이지에서 얻을 수 있다.