Solaris

솔라리스10 업데이트4 에서 삼바를 이용한 브라우징 활성화시키기

알 수 없는 사용자 2008. 3. 2.
728x90

솔라리스 10 08/07 에서 기본적으로 제공되는 삼바 서비스는 오직 smb 데몬에만 접근을 제공합니다. 만약 머신에서 제공되는 공유 디렉토리에 접근 하길 원한다면 nmbd(1m) 대몬이 실행되고 있어야 합니다.

이 것은 따로 서비스를 추가 함으로써 가능합니다. 그러나 우리는 현존하는 삼바 서비스를 변경하여 두개의 데몬을 각각 삼바 서비스의 분리된 인스턴스로 제공하도록 할 것입니다.

현재 manifest 를 확인하기 위해서는 이것을 리파지토리로 부터 익스포트 해야 합니다.
참고: 기본 manifest 는 /var/svc/manifest/network/samba.xml 로 배포 되고 이것을 시작점으로 사용할 수 있습니다.

# svccfg export samba > samba.xml

이 파일이 우리가 작업할 파일입니다.

우리가 변경할 것은:

  • 변경 후에 기본 인스턴스를 가지지 않을 것이기 때문에 그리고 두개의 인스턴스를 사용할 것이기 때문에(하나는 smb 그리고 하나는 nmb) 우리는 create_default_instancesingle_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/Enabling+Browsing+with+Samba+in+Solaris+10+Update+4
에서 보실 수 있습니다.

728x90

댓글