리눅스 사용기 및 테크팁

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

번호 제목 글쓴이 날짜 조회 수
공지 [설치기] 리눅스민트 19 클린 설치 후기 [3] 바람곰돌 2018.07.12 3117
공지 리눅스에서 사용하는 소프트웨어 개발 편집기 [10] Kevin 2018.05.29 2622
공지 [사용기] 음악재생기와 NAS 그리고 환경꾸미기 [13] 바람곰돌 2018.05.03 2105
공지 우분투 18.04 LTS Bionic Beaver를 써보았습니다! [18] la_Nube 2018.04.28 9999
공지 만자로를 쓰다가 [3] 꼬꼬댁 2018.04.28 4078
공지 리눅스 대초보자의 Deepin OS 사용 후기 공유합니다. [22] PEACH 2018.04.27 4187
공지 작은 교회에서 커뮤니티 실비아판 사용하기 [21] 산돌이네 2018.04.01 2178
공지 리눅스 사용기 및 팁엔테크 게시판 사용 도움말 관리자 2014.11.03 52040
801 League of Legends를 하모니카에 설치하기. [1] onting 2015.04.26 22885
800 우분투 16.04에서 각종 유틸 및 그래픽 드라이버 설치하기 [6] string 2016.04.21 21338
799 마인드맵 프로그램 XMind 추천합니다 [10] file 윙혼 2016.02.01 20780
798 윈도우 10에서 우분투 Bash 기능과 데스크탑 설치 후 GUI 사용하기 [15] 휘베스드님로인 2017.05.31 19936
797 윈도우즈와 리눅스의 TXT 호환 문제, 압축파일 한글깨짐 문제 [1] Ohnine 2015.03.21 18812
796 리눅스에서 egg 포멧 파일 압축해체 하는 방법 [2] file onting 2015.02.23 17005
795 리눅스 하드디스크 배드섹터 검사 및 치료 방법 [6] 행복한펭귄 2016.08.04 15611
794 음악파일(MP3 등)의 한글 정보(Tag)가 깨질경우 조치 방법 file remo 2014.12.06 15122
793 Linux Mint 에서 software를 install 하는 방법들 [1] codemaker 2015.02.11 13896
792 리눅스에서 HTS 사용은 언제쯤 가능할까? [3] file 행복한펭귄 2016.02.01 13809
791 민트17 에서 ati 4800 드라이버를 설치 중 오류 [8] soulowner 2015.01.26 12746
790 김프(GIMP)를 사용하고 싶으신 분께... [17] file 행복한펭귄 2016.02.25 12039
789 웹 역사 웹툰: 웹 표준이 중요한 이유 [3] ... 2015.01.03 11817
» [개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급) [1] file legoboss 2016.04.06 11206
787 민트에서 프린트 공유방법좀 제시해주세요...! [1] 프리 2015.01.12 11152
786 [질문] 다양한 한자 입력 방법 [2] 행복한펭귄 2016.02.03 10825
785 윈도 vb6을 대체할 수 있는것이 리눅스에 있나요... [2] 프리 2015.01.30 10601
784 zip 압축풀때 한글파일명 오류 해결방법 [4] file legoboss 2016.03.03 10515
783 [질문] 리눅스에서 사용 가능한 수학 및 데이타 분석 관련 프로그램은 어떤 것들이 있나요? [2] file 행복한펭귄 2016.02.01 10420
  • 하모니카 미디어 에디션
  • 설치가 필요없는 화상통화 하모니
loginbox
아직 회원이 아니세요? 회원가입