리눅스 사용기 및 테크팁

앞서 초급 섹션에서 기본적인 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 트러블 슈팅과 속도 튜닝에 대해서 짧게 다뤄보도록 하겠습니다.
그럼 즐거운 리눅스 하세요. ^^

번호 제목 추천 수 글쓴이 날짜 조회 수
공지 HamoniKR용 통합관제시스템 VIVEex [2] 0 NXware 2020.02.10 1207
공지 아치리눅스 + xfce4 + i3 후기입니다. [2] 1 가벼운게최고 2019.11.12 2633
공지 [설치기] 리눅스민트 19 클린 설치 후기 [3] 0 바람곰돌 2018.07.12 5607
공지 리눅스에서 사용하는 소프트웨어 개발 편집기 [10] 0 Kevin 2018.05.29 5546
공지 [사용기] 음악재생기와 NAS 그리고 환경꾸미기 [13] 0 바람곰돌 2018.05.03 4157
공지 우분투 18.04 LTS Bionic Beaver를 써보았습니다! [18] 0 la_Nube 2018.04.28 14229
공지 만자로를 쓰다가 [3] 0 꼬꼬댁 2018.04.28 6917
공지 리눅스 대초보자의 Deepin OS 사용 후기 공유합니다. [22] 1 PEACH 2018.04.27 7812
공지 작은 교회에서 커뮤니티 실비아판 사용하기 [21] 0 산돌이네 2018.04.01 4389
공지 리눅스 사용기 및 팁엔테크 게시판 사용 도움말 0 관리자 2014.11.03 53200
209 [개인 서버 구축 가이드] ⑤ 파일 공유 서버 (samba-고급) [1] 0 legoboss 2016.04.07 7449
208 [잡담] 리눅스 이용 비밀번호 푼 듯... 0 행복한펭귄 2016.04.07 5100
» [개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급) [1] file 0 legoboss 2016.04.06 14818
206 [게임] 프리 심슨 온라인 file 0 행복한펭귄 2016.04.06 2833
205 [게임] Warzone2100 v3.1.4 버전 업데이트 소식 file 0 행복한펭귄 2016.04.06 2600
204 [개인 서버 구축 가이드] ③ 파일 공유 서버 (samba-초급) [5] file 0 legoboss 2016.04.05 8018
203 Media 홍보 관계자분들 참고해주세요! [1] 0 식혜고양이 2016.04.05 2235
202 추천 온라인 비디오 에디터 10개 0 행복한펭귄 2016.04.05 2717
201 [가이드] 리눅스지만 인터넷 익스플로러는 쓰고싶어 - 2부 [3] file 0 Inasis 2016.04.04 9599
200 SourceForge Youtube Channel 0 행복한펭귄 2016.04.04 2488
199 프리 소프트웨어 가이드 TJFREE.COM 0 행복한펭귄 2016.04.04 2586
198 유튜브 자막 번역 기능으로 최신 리눅스 정보를 익히자! [1] file 0 행복한펭귄 2016.04.04 3023
197 [강좌] 우분투에서 게임을 즐기는 방법 0 행복한펭귄 2016.04.03 5122
196 [강좌] 사용자 중심의 리눅스 기초 활용법 [2] 0 행복한펭귄 2016.04.03 4875
195 [강좌] 우분투 코리아 유튜브 강좌 모음 0 행복한펭귄 2016.04.03 5846
194 [강좌] 리눅스 시스템 최적화 방안 0 행복한펭귄 2016.04.03 4863
193 [강좌] 리눅스 대박 사용기 0 행복한펭귄 2016.04.03 5283
192 [강좌] 동영상 제작 소프트웨어 가이드 0 행복한펭귄 2016.04.03 5009
191 [설문조사] 어떤 이미지 뷰어를 사용하십니까? (다수 선택 가능) 0 행복한펭귄 2016.04.03 5088
190 [설문조사] 당신이 애용하는 리눅스 비디오 에디터는? [5] 0 행복한펭귄 2016.04.02 5542
  • 하모니카 미디어 에디션
  • 설치가 필요없는 화상통화 하모니
loginbox
아직 회원이 아니세요? 회원가입