SAMBA 설정

여러분은 기본 설정을 변경하거나 새로운 설정을 추가하기 위하여 /etc/samba/smb.conf 파일을 편집하는 것으로 SAMBA 서버를 설정할 수 있습니다. 각 설정에 대한 좀 더 많은 정보는 /etc/samba/smb.conf 파일의 설명에 있고, 또는 터미널 프롬프트에서 다음의 명령을 입력하여 /etc/samba/smb.conf 매뉴얼 페이지를 보셔도 됩니다:

man smb.conf

[작은 정보]

설정 파일을 편집하기 전에, 여러분은 원본 파일의 복사본을 만들고 쓰기에서 이것을 보호해야만 합니다. 그러므로 여러분은 참조할 수 있는 원래의 설정을 가지게 되고 필요에 따라 재 사용할 수 있습니다.

/etc/samba/smb.conf 파일 백업:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

이제, /etc/samba/smb.conf 파일을 열어 변경 합니다.

서버

파일과 프린터 공유 서버 프로그램인 SAMBA suite에 더하여, 우분투는 또한 실제 윈도우즈 서버에 의해 제공되는 기능과 비슷하게 윈도우즈 클라이언트에게 추가적인 네트워크 서버 기능을 제공하기 위하여 고안된 여타의 강력한 서버 프로그램을 포함하고 있습니다. 예를 들어, 우분투는 디렉토리 서비스를 통한 컴퓨터와 사용자와 같은 네트워크 자원의 중앙 관리, 사용자 식별의 편의, 그리고 인증 서비스를 통한 컴퓨터와 사용자의 인증을 제공 합니다.

다음 부분은 SAMBA와 경량 디렉토리 접근 프로토콜(LDAP), 그리고 Kerberos 인증 서버와 같은 지원 기술에 대하여 좀 더 자세하게 논의를 합니다. 여러분은 또한 윈도우즈 클라이언트와 서버를 가지고 네트워크 통합을 하는데 편리를 주는 SAMBA 설정 파일에서 사용할 수 있는 몇 개의 설정 지시에 대한 것도 배우게 될 것 입니다.

Active Directory

Active Directory는 Microsoft에 의한 디렉토리 서비스의 소유권이 있는 이행이고, 네트워크 자원과 사용자의 정보를 공유하기 위한 수단을 제공하는데 사용 됩니다. 이러한 정보의 중앙화된 소스를 제공하는 것에 추가하여, Active Directory는 또한 네트워크를 위한 중앙화된 인증 보안 권한으로도 동작을 합니다. Active Directory는 전통적으로 분리되고, 특화된 디렉토리 시스템에서 찾을 수 있는 능력을 단순화된 통합, 관리, 그리고 네트워크 자원의 보안으로 합칩니다. SAMBA 패키지는 하나의 윈도우즈 도메인 관리자에서 Active Directory 서비스를 사용하기 위하여 설정될 수 있습니다.

LDAP

LDAP 서버 프로그램은 윈도우즈 컴퓨터에게 Microsoft Active Directory 서비스와 매우 유사한 방법으로 디렉토리 서비스 기능을 제공 합니다. 이러한 서비스는 컴퓨터, 사용자, 그리고 네크워크에 참여하는 컴퓨터 또는 사용자 그룹의 식별과 관계를 관리하는 것과 이러한 자원을 설명, 위치, 그리고 관리하기 위한 일관된 수단을 제공하는 것을 포함 합니다. 여러분의 우분투 시스템을 위하여 자유롭게 사용할 수 있는 LDAP의 이행은 OpenLDAP 이라 불립니다. OpenLDAP 디렉토리 요청을 관리하고 우분투의 하나의 LDAP 서버에서 다른 것으로 디렉토리 자료를 그대로 전달하는 책임을 가지는 서버 데몬은, slapdslurpd 입니다. OpenLDAP은, SAMBA가 LDAP 지원과 함께 컴파일이 되는 한, 윈도우즈 도메인 관리자가 하는 것과 마찬가지 방법으로 파일, 프린트, 그리고 디렉토리 서비스를 제공하기 위하여 SAMBA와 결합하여 사용되어 질 수 있습니다.

Kerberos

Kerberos 인증 보안 시스템은, 중앙화된 서버가 Kerberos를 사용하는 다른 컴퓨터에 의한 인증을 받은 암호화된 인증 티켓을 허용하는 것으로, 컴퓨터와 사용자에게 인증을 제공하기 위하여 표준화된 서비스 입니다. Kerberos 인증의 혜택은 상호적인 인증, 위임적인 인증, 상호 이용성, 그리고 단순화된 신뢰 관리를 포함 합니다. 우분투의 Kerberos 인증과 Kerberos 데이타베이스 관리를 관리하는 주요 서버 데몬은 krb5kdckadmin 입니다. SAMBA는 윈도우즈 도메인 관리자에 대항하여 컴퓨터와 사용자의 인증을 위한 하나의 장치로서 Kerberos를 사용할 수 있습니다. 그렇게 하려면, 우분투 시스템은 반드시 Kerberos를 설치하여야 하고, /etc/samba/smb.conf 는 적절한 realmsecurity 모드를 선택하도록 반드시 변경되어야 합니다. 예를 들어, /etc/samba/smb.conf 파일을 편집하기 위해 열고, 다음 값을 추가 합니다:

realm = DOMAIN_NAME

security = ADS

그 파일에 위의 값을 더하고, 그리고 그 파일을 저장 합니다.

[작은 정보]

위의 예의 DOMAIN_NAME 토큰은 여러분의 특정 윈도우즈 도메인을 가지고 대체하는 것을 확신 하십시오.

이 변경이 효과를 갖게 하려면 SAMBA 데몬을 재시작 하는 것이 필요 합니다. 터미널 프롬프트에서 다음 명령을 입력하는 것으로 SAMBA 데몬을 재시작 합니다:

sudo /etc/init.d/samba restart

컴퓨터 계정

컴퓨터 계정은 네트워크에 참여하는 컴퓨터 시스템을 유일하게 식별하기 위하여 디렉토리 서비스에서 사용되고, 보안의 관점에서 사용자와 같은 방식으로 심지어 취급 됩니다. 컴퓨터 계정은 사용자 계정과 마찬가지로 암호를 가지고, 사용자 계정과 같은 방식으로 네트워크 자원에게 인증을 하기 위한 대상이 됩니다. 예를 들어, 만약 한 네트워크 사용자가, 올바른 컴퓨터 계정을 가지고 있지 않는 컴퓨터에서 특정 네트워크를 위한 올바른 계정을 가지고 네트워크 자원을 인증하기 위해 시도한다면, 네트워크에 강제된 정책에 따라, 인증되지 않은 컴퓨터에서 인증을 시도하는 것으로 여겨진다면 그 사용자는 그 자원에 접근하는 것이 거절될 수 있습니다.

컴퓨터 계정은 SAMBA 암호 파일에 추가되어질 수 있고, 그 암호 데이타베이스 내에 먼저 올바른 사용자 계정으로써 존재하는 추가된 컴퓨터의 이름으로 제공될 수도 있습니다. 컴퓨터 또는 기계 계정을 SAMBA 암호 파일에 추가하기 위한 문법은 다음과 같이 터미널 프롬프트에서 smbpasswd 명령을 사용 합니다:

sudo smbpasswd -a -m COMPUTER_NAME

[작은 정보]

위의 예에서 COMPUTER_NAME 토큰은 여러분이 추가하려는 기계 계정을 위한 특정 컴퓨터의 실제 이름으로 대체하는 것을 확인 하십시오.

파일 접근 권한

파일 접근 권한은 컴퓨터 또는 사용자가 특정 디렉토리, 파일 또는 파일의 집합을 위하여 가지는 명시적 권리를 지정 합니다. 이러한 접근 권한은 /etc/samba/smb.conf 파일을 편집히고 지정된 파일 공유의 명시적 접근 권한을 규정하는 것으로 지정될 수 있습니다. 예를 들어, 여러분이 sourcedocs 이라 불리는 SAMBA 공유를 지정했고, planning 이라 알려진 사용자 그룹에게는 read-only 접근 권한을 주고 authors 라 불리는 그룹과 richard 라는 이름의 사용자에게는 그 공유에 쓰기를 허용하려고 한다면, /etc/samba/smb.conf 파일을 편집을 위하여 열고 다음의 항목을 [sourcedocs] 항목 아래에 추가 합니다:

read list = @planning

write list = @authors, richard

변경이 효과를 가지게 하기 위해 /etc/samba/smb.conf 를 저장 합니다.

또다른 가능한 접근 권한은 administrative 접근 권한을 특정한 공유 자원에 선언하는 것 입니다. 관리 접근 권한을 가진 사용자는 명시적으로 관리 접근 권한이 주어진 자원에 포함된 어떤 정보도 읽기, 쓰기, 또는 변경을 할 수 있습니다. 예를 들어, 만약 여러분이 사용자 melissa 에게 위의 예로 사용된 sourcedocs 공유의 관리 접근 권한을 주기를 원한다면, /etc/samba/smb.conf 파일을 편집하기 위해 열고 다음의 줄을 [sourcedocs] 항목 아래에 추가 합니다:

admin users = melissa

변경이 효과를 가지게 하기 위해 /etc/samba/smb.conf 를 저장 합니다.

클라이언트

우분투는 클라이언트 프로그램과 SMB 프로토콜로 공유된 네트워크 자원을 접근하기 위한 능력을 가지고 있습니다. 예를 들어, smbclient 라 불리는 유틸리티는 파일 전송 프로토콜(FTP) 클라이언트와 유사한 방법으로, 원격의 공유된 파일 시스템을 사용하는 것을 허용 합니다. smbclient 를 사용하는 예는, bill 이란 원격의 윈도우즈 컴퓨터에 의해 제공되는 documents 라는 공유 폴더 자원을 사용하기 위하여, 여러분은 프롬프트에서 다음과 같은 명령을 입력 합니다:

smbclient //bill/documents -U <username>

You will then be prompted for the password for the user name specified after the -U switch, and upon successful authentication, will be presented with a prompt where commands may be entered for manipulating and transferring files in a syntax similar to that used by non-graphical FTP clients. For more information on the smbclient utility, read the utility's manual page with the command:

man smbclient

Local mounting of remote network resources using the SMB protocol is also possible using the smbfs program.

To mount a shared folder named project-code on a Windows server named development as the user dlightman to your Ubuntu system's /mnt/pcode mount-point (the mountpoint you choose should be an empty folder), you would issue this command at the prompt:

sudo mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode

여러분은 그런 후, 사용자 암호의 입력을 지시 받게되고, 성공적으로 인증이 된 후, 그 공유 폴더의 내용물은 마운트 명령의 마지막 인자로 지정한 그 마운트 디렉토리를 통해서 로컬 자원과 마찬가지로 사용을 할 수 있게 됩니다. 그 공유 자원의 연결을 끊는 것은, 여러분이 여타의 마운트된 파일 시스템에서 같이, 간단히 umount 명령을 사용 합니다. 예를 들어:

sudo umount /mnt/pcode

사용자 계정

사용자 계정은 특정 컴퓨터와 네트워크 자원을 사용하기 위한 몇 가지 인증의 등급을 가지는 컴퓨터 이용자를 지정 합니다. 전형적으로, 네트워크 환경에서는, 사용자 계정은 각 이용자에게 허용된 컴퓨터 또는 네트워크를 접근하기 위하여 제공되어지고, 사용자 계정이 가지는 명시적인 권한을 지정한 정책과 접근 권한이 지정되는 곳 입니다. 여러분의 우분투 시스템을 위한 SAMBA 네트워크 사용자를 지정하려면, smbpasswd 명령을 사용 합니다. 사용자 이름 jseinfeld 를 여러분의 우분투 시스템에 SAMBA 사용자로 추가하는 예는, 프롬프트웨서 이 명령을 입력 합니다:

smbpasswd -a jseinfeld

그런 다음 smbpasswd 프로그램은 여러분이 그 사용자를 위해 암호를 입력할 수 있도록 프롬프트를 보일 겁니다:

New SMB password:

그 사용자를 위해 지정하고 싶은 암호를 입력하고, smbpasswd 프로그램은 여러분이 그 암호를 확인하도록 다시 물을 것 입니다:

Retype new SMB password:

암호를 확인하고, smbpasswd 프로그램은 SAMBA 암호 파일에 그 사용자를 위한 항목을 추가 합니다.

그룹

그룹은 특정 네트워크 자원을 접근하는 공통적인 등급을 가지는 컴퓨터 또는 사용자의 집합을 지정하고 그러한 네트워크 자원으로 접근하는 것을 관리하는 선별 정도의 등급을 제공 합니다. 예를 들어, 그룹 qa 가 지정되었고 사용자 freda, danika, 그리고 rob 을 포함하고 있고, 두 번째 그룹 support 가 지정되었고 사용자 danika, jeremy, 그리고 vincent 로 구성된다면, 특정 네트워크 자원은 qa 그룹에 의해 접근되는 것을 허용하기 위하여 설정될 수 있고 그 결과로 freda, danika, rob은 접근이 허용되지만 jeremy 또는 vincent는 접근을 할 수 없게 됩니다. 사용자 danikaqasupport 그룹 양쪽 모두에 속하므로, 그녀는 양쪽 그룹에 의한 접근을 위하여 설정되는 자원을 사용할 수 있게되고, 모든 다른 사용자들은 그들이 속하는 그룹에게 명시적으로 허용한 자원만을 사용하게 됩니다.

SAMBA 설정 파일 /etc/samba/smb.conf 내에 그룹을 지정할 때 인식되는 문법은 그룹 이름 앞에 "@" 심벌을 가지는 것입니다. 예를 들어, 만약 여러분이 /etc/samba/smb.conf 의 특정 영역에 sysadmin 이란 이름의 그룹을 지정하기를 원한다면, 그 그룹의 이름을 @sysadmin 로 입력하는 것으로 그렇게 합니다.

그룹 정책

그룹 정책은 도메인 또는 Workgroup 컴퓨터 계정이 속하는 것과 여타의 SAMBA 서버를 위한 전체 설정값과 관련하는 특정 SAMBA 설정 값을 지정 합니다. 예를 들어, 만약 SAMBA 서버가 LEVELONE 이라 불리는 윈도우즈 컴퓨터의 Workgroup에 속한다면, /etc/samba/smb.conf 는 다음과 같이 그에 대한 것을 적정하게 변경하는 것으로 편집될 수 있습니다:

workgroup = LEVELONE

파일을 저장하고 변경의 효과를 가지기 위하여 SAMBA 데몬을 재시작 합니다.

다른 중요한 전체 정책 설정값은 여러분의 우분투 시스템을 윈도우즈 기반의 네트워크 상의 다른 기계에 알리는 NETBIOS 서버 이름을 지정하는 server string 을 포함 합니다. 이것은 윈도우즈 클라이언트와 SMB 프로토콜을 가지고 네트워크를 열람할 능력이 있는 다른 컴퓨터들에 의하여 인식되는 여러분의 우분투 시스템 이름 입니다. 추가하여, 여러분은 /etc/samba/smb.conf 파일 내에 log file 지시자를 사용하여 SAMBA 서버의 로그 파일의 이름과 위치를 지정할 수 있습니다.

전체 그룹 정책을 운영하는 몇 가지 추가적인 지시자들은 모든 공유된 자원의 전체적인 특징의 명세를 포함 합니다. 예를 들어, /etc/samba/smb.conf 파일의 [global] 제목 아래의 특정 지시자를 놓는 것은 특정 공유 자원의 제목 아래에 이를 덮어쓰기 위한 지시자를 위치시키지 않는 한 모든 공유 자원에게 영향을 미치게 됩니다. 여러분은 browseable 지시자를 놓는 것으로 네트워크 상의 모든 클라이언트들에 의해 열람될 수 있는 모든 공유를 지정할 수 있고, 그 지시자는 /etc/samba/smb.conf 파일 내에 [global] 아래, Boolean 인수(yes 또는 no)를 가집니다. 그것은, 여러분이 그 파일을 편집하기 위하여 열고 그 줄을 추가 합니다:

browseable = true

/etc/samba/smb.conf[global] 영역 아래에, 그러면 SAMBA를 통하여 여러분의 우분투 시스템에 의해 제공되는 모든 공유는 모든 허가된 클라이언트에 의하여 열람되어질 수 있습니다. 만약 특정한 공유가 browseable = false 지시자를 포함한다면, 그 전체 지시자는 덮어쓰여 집니다 - 즉, 특정한 공유에 지정된 것이 영향을 가집니다.

다른 예제들도 비슷한 방식으로 작동을 하게 되고, publicwriteable 지시자가 그 예가 됩니다. public 지시자는 Boolean 값을 갖고 특정 공유 자원이 모든 클라이언트 또는 허가된 것에만 보여지는 것의 여부를 결정 합니다. writeable 지시자도 또한 Boolean 값을 취하고 특정 공유 자원이 어떤 또는 모든 네트워크 클라이언트에 의해 쓰여지는 것의 여부를 지정 합니다.