솔라리스 10 08/07 에서 기본적으로 제공되는 삼바 서비스는 오직 smb 데몬에만 접근을 제공합니다. 만약 머신에서 제공되는 공유 디렉토리에 접근 하길 원한다면 nmbd(1m) 대몬이 실행되고 있어야 합니다.
이 것은 따로 서비스를 추가 함으로써 가능합니다. 그러나 우리는 현존하는 삼바 서비스를 변경하여 두개의 데몬을 각각 삼바 서비스의 분리된 인스턴스로 제공하도록 할 것입니다.
현재 manifest 를 확인하기 위해서는 이것을 리파지토리로 부터 익스포트 해야 합니다.
참고: 기본 manifest 는 /var/svc/manifest/network/samba.xml 로 배포 되고 이것을 시작점으로 사용할 수 있습니다.
# svccfg export samba > samba.xml
이 파일이 우리가 작업할 파일입니다.
우리가 변경할 것은:
- 변경 후에 기본 인스턴스를 가지지 않을 것이기 때문에 그리고 두개의 인스턴스를 사용할 것이기 때문에(하나는 smb 그리고 하나는 nmb) 우리는 create_default_instance 와 single_instance 줄을 지울 것입니다.
- 현존하는 인스턴스의 시작 및 정지 메소드를 래핑(wrapping)할 것입니다.
- nmbd 데몬을 고유의 시작 및 정지 메소드와 함께 인스턴스로서 추가해야 합니다.
- nmbd 데몬의 멘페이지를 참고하는 문서 링크로 변경해야 합니다.
우리가 할 수 있는 또 다른 변경사항으로는:
- 설정 파일에 의존성을 추가합니다, 왜냐하면 데몬의 기본 종료 값인 nmbd(1m)는 smf 의 SMF_EXIT_ERR_CONFIG 코드 96 와 일치 하지 않기 때문입니다.
- 킬 메소드를 :kill 로 변경합니다. 그러므로써 모든 데몬은 서비스가 비활성화 되면 죽게 됩니다. 이 것은 새로운 새션뿐만 아니라 현존하는 세션에도 적용됩니다.
수정된 samba.xml
samba.xml
<?xml version='1.0'?> <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'> <service_bundle type='manifest' name='export'> <service name='network/samba' type='service' version='0'> <!-- Remove the create_default_instance and single_instance lines --> <dependency name='net-loopback' grouping='require_any' restart_on='none' type='service'> <service_fmri value='svc:/network/loopback'/> </dependency> <dependency name='net-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/service'/> </dependency> <dependency name='net-physical' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/physical'/> </dependency> <dependency name='filesystem-local' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local'/> </dependency> <!-- Add a dependancy for the config file --> <dependency name='config_data' grouping='require_all' restart_on='none' type='path'> <service_fmri value='file://localhost/etc/sfw/smb.conf'/> </dependency> <dependent name='samba_multi-user-server' restart_on='none' grouping='optional_all'> <service_fmri value='svc:/milestone/multi-user-server'/> </dependent> <!-- Move the smbd daemon startup methods into an instance. We'll call this instance smbd --> <instance name='smbd' enabled='false'> <exec_method name='start' type='method' exec='/usr/sfw/sbin/smbd -D' timeout_seconds='170'> <method_context/> </exec_method> <!-- change the stop method to kill all the daemons, including existing sessions --> <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'> <method_context/> </exec_method> </instance> <!-- Add the nmbd instance --> <instance name='nmbd' enabled='false'> <exec_method name='start' type='method' exec='/usr/sfw/sbin/nmbd -D' timeout_seconds='170'> <method_context/> </exec_method> <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'> <method_context/> </exec_method> </instance> <stability value='Unstable'/> <template> <common_name> <loctext xml:lang='C'>SMB file server</loctext> </common_name> <documentation> <manpage title='smbd' section='1m' manpath='/usr/sfw/man'/> <manpage title='nmbd' section='1m' manpath='/usr/sfw/man'/> <manpage title='smb.conf' section='4' manpath='/usr/sfw/man'/> </documentation> </template> </service> </service_bundle>
수정사항 반영하기
# svcadm disable samba # svccfg import samba.xml # svccfg delete svc:/network/samba:default # svcadm refresh samba:smbd # svcadm refresh samba:nmbd # svcadm enable samba:smbd # svcadm enable samba:nmbd
결과 확인하기
svcs 커맨드는 현재 실행중인 서비스를 확인할 수 있습니다. 그리고 nmblookup 커맨드는 머신이 브라우즈 그룹에 속해 있는지 확인 할 수 있습니다.
# svcs samba
STATE STIME FMRI
online 8:34:16 svc:/network/samba:smbd
online 8:35:00 svc:/network/samba:nmbd
# svcs -p samba
STATE STIME FMRI
online 8:34:16 svc:/network/samba:smbd
8:34:16 2038 smbd
8:34:16 2039 smbd
online 8:35:00 svc:/network/samba:nmbd
8:35:00 2066 nmbd
# /usr/sfw/bin/nmblookup SMBGROUP
querying SMBGROUP on 192.168.1.255
192.168.1.138 SMBGROUP<00>
192.168.1.134 SMBGROUP<00>
192.168.1.2 SMBGROUP<00>
192.168.1.76 SMBGROUP<00>
192.168.1.1 SMBGROUP<00>
192.168.1.51 SMBGROUP<00>
이 글의 원본은 http://wikis.sun.com/display/bigadmin/e ··· date%2B4
에서 보실 수 있습니다.
"관리자코너" 카테고리의 다른 글
- 메타 데이터베이스 삭제 사고 시 솔라리스 OS의 시스템 복구 (댓글 0개 / 트랙백 0개) 2008/07/10
- 멀티스레드 시스템의 리소스를 최대한 사용하기 위한 기본 예약 클래스 설정 (댓글 0개 / 트랙백 0개) 2008/07/15
- DTrace 를 이용하여 Defunct 프로세스 문제 해결하기 (댓글 0개 / 트랙백 0개) 2008/07/28
- 솔라리스 볼륨 메니저를 이용하여 솔라리스9, 10 에서 루트를 미러링 하는 방법 (댓글 1개 / 트랙백 0개) 2008/09/20
- UFS Dump 의 안전한 관리 방법 (댓글 14개 / 트랙백 1개) 2007/08/20
- 솔라리스9 혹은 그 이상 버전을 운용하는 시스템상의 하드 디스크로 부터 WAN 부트이용하기 (댓글 0개 / 트랙백 0개) 2007/12/14
- rsync 와 sudo 를 이용한 원격 업데이트 (댓글 0개 / 트랙백 0개) 2008/03/11
- 윈도우 혹은 리눅스에서 솔라리스 파티션에 접근하기 (댓글 0개 / 트랙백 0개) 2008/05/19
- 솔라리스 라이브 업그레이드를 이용하여 논-글로벌 존의 솔라리스10을 업그레이드 하는 방법 (댓글 0개 / 트랙백 0개) 2008/01/16
- 썬 디바이스 검출 툴 - 버젼 1.0 (댓글 3개 / 트랙백 0개) 2007/01/23
2007/12/14 09:49
2007/12/14 09:49
댓글을 달아 주세요