2013년 11월 5일 화요일

Ubuntu 기준 samba(smb) 설정

Ubuntu 13.10 설치된 머신에 samba 을 설치해서 Windows 와 파일을 쉽게 주고받을 수 있도록 하겠습니다.



1. samba 설치


apt-get 을 이용해서 설치를 진행합니다.

# sudo apt-get install samba

samba 와 관련된 프로그램들이 설치될 것입니다.



2. 설정 파일 수정


먼저 기본 설정파일을 백업합니다.

# sudo cp /etc/samba/smb.conf /etc/samba/smb.conf-dist

그리고 에디터로 수정합니다.

# sudo vi /etc/samba/smb.conf

아래 부분을 주석해제 해보도록 하겠습니다.

# security = user
...
(중략)
...
;[homes]
;   comment = Home Directories
;   browseable = no
...
;   valid users = %S

smb.conf 파일은 주석으로 샵(#)과 세미콜론(;) 모두를 사용할 수 있네요.



3. 패스워드 생성


samba 는 Linux 의 계정을 그대로 사용합니다. 하지만, 기존 계정의 패스워드를 그대로 사용하지 않고 별도로 관리합니다. 그래서 사용할 계정의 패스워드를 등록해야 합니다.

# smbpasswd - a (사용자계정)

입력 후 samba 연결할 비밀번호를 입력하면 네트워크 연결 시 사용자계정을 아이디로, 등록한 비밀번호를 비밀번호로 이용할 수 있습니다. Linux 계정과 별도로 관리되므로 보안상 좀 더 좋은 측면도 있습니다.



4. samba 서비스 시작


설정 파일을 저장하고 패스워드를 생성하였으면 samba 을 재시작해줍니다. samba 는 nmbd 와 smbd 을 이용하는데, /etc/init.d/samba 는 이 두 개의 daemon 을 끄고 켜주는 스크립트입니다.

# sudo service samba restart

이제 동일한 네트워크 대역에 있는 PC 에서 네트워크를 열어보면 머신의 이름이 보일 것입니다. 윈도우즈의 로그인 계정의 아이디와 패스워드가 Linux 계정과 동일하다면 별도의 로그인 없이 로그인 됩니다.
공유된 폴더는 Linux 의 사용자 계정 홈디렉토리(~/)입니다.

간혹 설정이 잘 적용이 안된다 싶으면 smbd 와 nmbd 을 직접 껏다 켜줍니다.

# sudo service smbd stop
# sudo service nmbd stop
# sudo service nmbd start
# sudo service smbd start



5. [homes] 사용시 주의점


기본 설정으로 사용자 홈디렉토리를 공유하도록 설정했습니다. 이 때 주의할 점이 있는데, 윈도우즈에서 폴더를 접근할 때 계정 정보를 물어보는데, samba 는 이 계정이 로그인되면 해당 사용자 계정으로 새로운 Thread 을 만들어서 작업을 처리하기 때문에 각 사용자별로 하나의 공유 디렉토리를 바라보게 하려면 사용자의 기본 group 을 sambashare 로 변경한 뒤 group 에 모든 권한을 제공해야 합니다.

하지만, 현재 버젼에서는 group 권한을 별도로 지정해줄 수 없기 때문에 조금 귀찮은 일이 발생합니다. 여기에 대해서는 각자 고민해서 권한을 주어야 하겠습니다.

저의 경우 아래와 같이 공유 디렉토리를 만든 뒤, 해당 디렉토리를 제어할 그룹을 사용자 그룹에 지정해줬습니다. Plex Media Server 을 쓰는 관계로 plex 라는 그룹을 이용할 계획입니다.
Plex Media Server 을 설치하면서 plex 계정이 이미 생성된 상태이기 때문에 따로 계정 추가 작업은 진행하지 않습니다. 그래도 smbpasswd 로 samba 에서 사용할 비밀번호는 설정해줘야 합니다.

# smbpasswd -a plex
# usermod -g plex zepinos
# usermod -aG zepinos zepinos

-aG 옵션은 사용자에게 그룹을 추가(가입)하는 것입니다. plex 로 기본그룹을 옮기면서 기존의 그룹(사용자계정 생성시 기본적으로 사용자 아이디와 동일한 그룹이 생성되어 기본그룹으로 사용)에서 제거(해지)가 되는데, 기존의 프로그램 등에 영향을 미칠 수 있으므로 /etc/group 에 수동으로 추가시켜 주거나 위 옵션으로 groups 에는 다시 추가를 시켜주는게 좋습니다.



마지막으로 변경된 기본그룹을 확인해봅니다.

# id zepinos

uid=1000(zepinos) gid=114(plex) 그룹들=114(plex),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),1000(zepinos),111(lpadmin),112(sambashare)



이제 /media/plex 디렉토리를 하나 만들어준 뒤 smb.conf 파일에 아래와 같이 기술합니다. 그리고 위에서 [homes] 의 주석해제한 부분을 모두 주석처리 합니다.

[plex]
   comment = Plex Media Server
   browseable = yes
   path = /media/plex

   read only = no
   writable = yes

   create mask = 0700
   directory mask = 0700

   valid users = plex

plex 계정만 접속할 수 있고, 기본 디렉토리는 /media/plex 입니다. smbd 와 nmbd 을 재시작한 뒤 plex 계정으로 로그인하면 공유 디렉토리를 이용할 수 있게 됩니다.

댓글 없음:

댓글 쓰기