리눅스 팁 & 테크

조회 수 17898 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
앞서 초급 섹션에서 기본적인 samba 서버 설치/설정 및 구동에 대해서 알아보았으며,
이제는 세부적인 설정을 통해 samba 서버를 좀 더 고급지게(?) 사용하는 방법에 대해 알아보겠습니다.

먼저 samba 설정파일인 smb.conf를 열어봅니다.
$ sudo vi /etc/samba/smb.conf
※ vi 에디터에 익숙치 않은 사용자라면, pluma 에디터를 추천합니다.
$ sudo pluma /etc/samba/smb.conf

samba_04.png



※ 설정 내용에서 샾(#) 또는 세미콜론(;)으로 시작하는 문장은 "주석" 문장입니다.
  서비스 구동 시 OS에서 해당 문장은 해석하지 않고 넘어 가기에, 메모나 설명 등을 정리하는 용도로 많이 사용됩니다.

samba는 크게 3개의 파트로 구성되어 있습니다. (대괄호로 묶여 있는 부분을 유심히 살펴보면 됩니다.)
  + [global] : 전반적인 samba 설정을 다룹니다. (접속 권한, 인증 방법, 로그 설정 등)
  + [homes] : 사용자 계정의 기본 공유 디렉터리 입니다. (접속 유저별 자신의 공유 공간)
  + [public] : 관리자가 별도로 정의해서 사용하는 공유 디렉터리 입니다. (명칭 및 권한 등 자유롭게 설정)

#################################################################
먼저 [global] 설정에 대해 알아봅니다.

① Browsing/Identification
# workgroup는 네트워크 공유 그룹 이름입니다.
# 기업이나 단체에서는 단일 네트워크 내에 여러 PC가 있기에 group을 지정합니다만,
# 개인용으로 사용하시는 거라면 group이 별 의미가 없습니다. 그냥 그대로 둡니다.
workgroup = WORKGROUP

# 서버 이름을 표시합니다. Windows에서 네트워크로 검색해보면 나오는 PC 이름에 해당합니다.
# 기본으로는 호스트명(%h)을 표시하도록 되어 있습니다. 본인이 원하는 이름으로 바꾸셔도 됩니다.
# (예)  server string = HamoniKR Samba server
server string = %h server (Samba, Linux Mint)

# samba 서버에 접속할때, ID 계정을 확인하여 접속 유무를 허용한다면 "user"로 설정하고,
# ID 계정 없이 누구나 접속하게 하려면 "share"로 설정합니다.
# 여기서는 보안상 계정 확인이 안전하므로, user 상태 그대로 두겠습니다.
# 기본 설정 파일에는 아래 항목이 없을 수도 있습니다. default가 user 이므로 설정이 없어도 무방합니다.
security = user

# Windows 기반의 Name 서비스를 사용하는 경우...
# nmbd 데몬이 wins server 역할을 하고, 등록되지 않은 NetBIOS 이름을 찾아줄때,
# DNS server를 이용하여 NetBIOS 이름을 찾아줄 것인지를 지정하는 옵션입니다.
# wins server를 사용하지 않는 경우라면, 이 값들을 수정할 필요가 없습니다. (주석 그대로 유지)
  # wins support = no
  # wins server = w.x.y.z
  # wins proxy = yes
dns proxy = no

② Networking
# 여러개의 네트워크 장치(랜카드)를 사용 중이면서, 특정 네트워크 장치로 samba 서비스를 제한해야 하는 경우
# 사용할 네트워크 장치를 정의할 수 있습니다.
# 일반적인 경우에는 수정할 필요가 없으므로 주석 그대로 남겨둡니다.
;   interfaces = 127.0.0.0/8 eth0
;   bind interfaces only = yes

# 특정 IP 또는 대역폭에서의 접근만을 허용하고 싶은 경우...
# 아래의 유형들 중 하나를 선택하여 내용을 추가합니다.
# 접속 IP 단위로 접근을 허용
hosts allow = 192.168.0.100 192.168.0.101
# 대역폭 단위로 지정. 마지막에 점(.)으로 끝남에 유의
hosts allow = 192.168.0. 10.10.10.
# 192.168.0.0 네트워크 대역에 속한 접속은 허용하되, 100번 101번은 제외
hosts allow = 192.168.0. except 192.168.0.100 192.168.0.101
# 호스트명 단위로 접근 설정
hosts allow = hamonikr01 hamonikr02 hamonikrweb hamonikrdb

③ Debugging/Accounting
# 로그 파일의 경로를 지정합니다.
# samba에 접속하는 호스트 별로 개별적인 로그 파일을 만들도록 설정되어 있습니다.
# 기본값 그대로 두어도 무방합니다.
log file = /var/log/samba/log.%m

# 로그 파일의 최대 사이즈를 지정합니다. (kb 단위)
# 로그 파일의 용량이 지정된 사이즈를 초과하는 경우,
# loglotate를 통해서 넘버링을 하고 새로운 로그파일로 저장됩니다.
max log size = 1000

# samba를 통한 파일 오퍼레이션(operation)에 있어 로그를 남기도록 하는 설정입니다.
# 파일 오퍼레이션 : read pread write pwrite chmod rmdir unlink mkdir rename 등
# syslog 서비스가 같이 구동되어야 합니다. 기본값은 no
  # syslog only = no
syslog = 0

# samba 서버가 강제종료(crash)되는 등의 이슈 발생 시, admin 계정으로 메일 통지를 보내는 설정입니다.
# 기본 설정 그대로 둡니다.
panic action = /usr/share/samba/panic-action %d

④ Authentication
# samba의 역할을 정의합니다.
# samba를 도메인 컨트롤러로 사용하지 않는 이상 단일서버(standaloneserver)로 사용합니다.
server role = standalone server

# 사용자 패스워드를 어떻게 관리할지를 결정합니다.
# 일반적으로 smbpasswd를 사용합니다.
# 계정 수가 많아져도 부하가 적어 빠른 성능을 보여주는 tdbsam으로 변경할 수 있습니다. (기본값 smbpasswd)
; passdb backend = tdbsam

# PAM 인증 방식을 준수한다는 설정입니다. 기본값 그대로 둡니다.
obey pam restrictions = yes

# samba 계정의 패스워드 변경 시, 해당 리눅스 계정도 같이 동기화할 수 있도록하는 옵션입니다.
# 이를 위해 encrypt password, smb passwd file 두 옵션을 반드시 사용해야 합니다.
# passwd chat에서 패스워드 변경 시 사용자에게 보여지는 메세지 설정이 가능합니다.
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# 패스워드 변경 요청 시 PAM을 사용하여 변경하도록하는 설정입니다. 기본값 그대로 둡니다.
pam password change = yes

# 클라이언트에서 samba 접근 시, 로그인에 실패한 사용자들을 어떻게 취급할지를 결정합니다.
# 기본값은 bad user는 guest로 취급하는 것입니다.
map to guest = bad user

⑤ 기타
# 사용자 공유에 guest 접근을 허용합니다.
usershare allow guests = yes

# samba 계정과 리눅스 계정을 다르게 사용할 경우 매칭 테이블 파일을 지정합니다.
username map = /etc/samba/smbusers

#################################################################
다음으로 [homes] 설정에 대해 알아봅니다.
여기서부터는 사용 형태에 따라 임의로 설정해주어야 합니다.

[homes] 설정은, 접속하는 samba 계정별로 가지는 자신만의 공유 경로로서,
본인만이 사용하고 읽기/쓰기 권한을 모두 가지는게 일반적입니다.
이점을 고려하여 아래와 같이 설정을 해보도록 합니다.

[homes]

  comment = Home Directories        # 설명
  valid users = %S                  # 본인만 사용
  writeable = yes                   # 쓰기 허용
  browseable = no                   # 숨김
※ 자신의 경로로 자동 지정되므로, path 옵션을 사용할 필요가 없습니다.

#################################################################
다음은 프린터 설정입니다.
현재 시스템에 프린터가 설치되어 있다면, 자동으로 공유프린터로 보여지도록 설정되어 있습니다.
기본값 그대로 사용하면 됩니다.
[printers]
  comment = All Printers
  browseable = no
  path = /var/spool/samba
  printable = yes
; guest ok = no
; read only = yes

  create mask = 0700 

#################################################################
이제 필요한 공유 디렉터리를 입맛대로 만들어 보도록 합니다.
각 옵션별 의미를 파악하면 이들을 잘 조합하여 공유 폴더를 만들 수 있습니다.

먼저 공개(public) 항목을 만들어 보겠습니다.
공개 디렉터리이기에 누구나 접근할 수 있어야 하며, 보안상 읽기전용으로 설정하기도 합니다.
[public]
  comment = Public Directories
  path = /var/public                # 시스템 상의 접속 경로 지정
  public = yes                      # public 권한
  writable = no                     # 쓰기 불가 (읽기 전용)
  write list = @staff               # 읽기 전용이지만, staff 그룹 사용자는 쓰기 허용
  force user = admin                # 파일/폴더 생성 시, 지정되는 user 계정

  force group = staff               # 파일/폴더 생성 시, 지정되는 group 계정 

#################################################################
특정 사용자들에 한해 읽기/쓰기가 가능한 공유 디렉터리를 만들어 보겠습니다.
[data]
  comment = Data Directories
  path = /var/data                  # 시스템 상의 접속 경로 지정
  read only = no                    # 읽기만 가능하게 할지를 지정
  writable = yes                    # 쓰기 허용
  valid user = user1 user2 user3    # 사용 가능한 사용자를 지정
  public = no                       # guest는 이용할 수 없고 개인 사용자만 사용
  browseable = no
  create mask = 0777                # 파일 생성 mask
  directory mask = 0777             # 디렉터리 생성 mask

  follow symlinks = no              # 심볼릭 링크로 이동 제한

※ 공유 디렉터리를 사용할 user가 많은 경우, 그룹으로 간단히 명시할 수도 있습니다.
   그룹 표시문자(@)를 사용 (예: valid user = @groupname)
※ mask는 파일/디렉터리 생성시 적용되는 퍼미션(사용권한)을 말합니다.
   첫째 자리는 시스템 구분 비트이므로 제외하고, 두번째 자리부터 "사용자(user), 그룹(group), 기타(other)" 입니다.
   숫자값은 "읽기(read)/쓰기(write)/실행(exec)"을 뜻하며, 각 자리의 값은 읽기(4), 쓰기(2), 실행(1) 입니다.
   즉, 숫자가 6이면 읽기/쓰기(r+w), 7이면 읽기/쓰기/실행(r+w+x), 5이면 읽기/실행(r+x) 입니다.
   위 예에서와 같이 0777 이면, 사용자/그룹/기타 모두에게 읽기/쓰기/실행 권한을 주겠다는 뜻이 됩니다.
   필요에 따라 0755, 0644 등과 같이 적절한 퍼미션 값을 지정하면 됩니다.
#################################################################

samba 설정에 대해 대략 살펴보았는데요.
설정 설명 위주다보니 제가 봐도 따분하게 느껴지네요.
초급편에서 samba 구동까지 마치셨다면, 중급편에서 필요한 부분만 뽑아 사용하면 무난히 설정할 수 있으리라 보여집니다.

다음 고급편에서는 samba 트러블 슈팅과 속도 튜닝에 대해서 짧게 다뤄보도록 하겠습니다.
그럼 즐거운 리눅스 하세요. ^^

  • profile
    행복한펭귄 2016.04.07 09:13

    알차게 핵심을 꼭 집어서 잘 정리해 주셨네요.


    내용 잘 참고하겠습니다.


    감사합니다.


    msn034.gifmsn034.gifmsn034.gif


  1. 유튜브 프리미엄 우회 결제 - 우크라이나

  2. 리눅스에서 자기 노트북의 모델명이 무엇인지 궁금할때는 dmidecode

  3. 하드웨어 호환성을 확인하고 싶을 때는 linux-hardware.org 를 사용해보세요

  4. 하모니카 7.0 카카오톡 hidpi 설정하기

  5. 리브레오피스에서 hwp 사용하기

  6. 리눅스 사용기 및 팁엔테크 게시판 사용 도움말

  7. League of Legends를 하모니카에 설치하기.

  8. 리눅스에서 egg 포멧 파일 압축해체 하는 방법

  9. 우분투 16.04에서 각종 유틸 및 그래픽 드라이버 설치하기

  10. 리눅스 하드디스크 배드섹터 검사 및 치료 방법

  11. 윈도우 10에서 우분투 Bash 기능과 데스크탑 설치 후 GUI 사용하기

  12. zip 압축풀때 한글파일명 오류 해결방법

  13. 만자로를 쓰다가

  14. 마인드맵 프로그램 XMind 추천합니다

  15. 국내, 해외 잡지를 무료로 읽고 싶다면?!

  16. 윈도우즈와 리눅스의 TXT 호환 문제, 압축파일 한글깨짐 문제

  17. 김프(GIMP)를 사용하고 싶으신 분께...

  18. 음악파일(MP3 등)의 한글 정보(Tag)가 깨질경우 조치 방법

  19. [개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급)

  20. 문명5 한글화 하는법

  21. 리눅스에서 fan 속도 조절하기

  22. 우분투 18.04 LTS Bionic Beaver를 써보았습니다!

  23. 데비안 9.2 firmware 설치 문제입니다.

  24. Linux Mint 에서 software를 install 하는 방법들

  25. 리눅스에서 HTS 사용은 언제쯤 가능할까?

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 47 Next
/ 47
CLOSE