메뉴 건너뛰기

PDSooN

Free Board

파일공유 Samba 설정 - smb.conf

PDSooN 2026.03.15 09:11 조회 수 : 1

 

리눅스나 nas를 사용한다면 기본적으로 윈도우나 다른 시스템과 피일 공유를 설정하게 된다. 이때 사용하는게 되는것이 Samba인데, 삼바에서 동작하는 모든 동작의 설정은 /etc/samba/smb.conf 파일에서 이루어진다.


 

1. smb.conf 구조

Samba 설정 파일은 크게 두 가지 영역으로 나뉜다.

  • [global]: 서버 전체에 영향을 미치는 기본 규칙 (네트워크 이름, 보안 모드 등)

  • [Share Name]: 실제 공유될 디렉토리별 세부 규칙 (경로, 읽기/쓰기 권한 등)


 

2. 보안을 고려한 실전 설정 예시

단순히 모든 파일을 공유하는 것이 아니라, 특정 사용자만 접근 가능하고 권한이 없으면 목록에서도 보이지 않게 만드는 보안 강화 설정입니다.

 

[global]

    workgroup = WORKGROUP
    server string = My Linux Server
    security = user
    map to guest = bad user

    # [고급] 권한이 없는 공유 폴더(Share)는 목록에서 아예 숨김
    access based share enum = yes

[PrivateDocs]
    comment = 개인 문서 보관함
    path = /srv/samba/private
    
    # 특정 사용자(gildong)만 접근 허용
    valid users = gildong
    
    # 윈도우 탐색기 네트워크 목록에서 이 폴더를 숨길지 여부 (yes가 기본)
    browseable = yes
    
    writable = yes
    guest ok = no

    # [핵심] 읽기 권한이 없는 파일/하위 폴더는 목록에서 숨김
    hide unreadable = yes

 

3. 핵심 옵션 설명 : "보여줄 것인가, 말 것인가?"

공유된 폴더나 파일을 네트워크에서 접근하는 사용자에게 접속권한이 있거나 없거나 상관없이 목록을 보여줄것인지 말것인지에 대한 설정이다. 

 

① access based share enum = yes

사용자가 서버 IP(\\192.168.x.x)로 접속했을 때, 해당 사용자가 읽기 권한이 없는 '공유 폴더' 자체를 목록에서 삭제합니다. 남의 폴더가 존재한다는 사실조차 모르게 할 때 유용하다.

 

② hide unreadable = yes

공유 폴더 내부로 들어갔을 때 동작합니다. 사용자가 읽기 권한이 없는 개별 파일이나 하위 디렉토리를 숨깁니다. "파일은 있는데 열 수 없어요"라는 오류 메시지 대신, 아예 파일을 안 보여줌으로써 깔끔한 환경을 제공합니다.

 

③ browseable = no

권한 여부와 상관없이 네트워크 환경의 전체 목록에서 해당 공유 이름을 무조건 숨깁니다.  즉 권한이 있더라고 목록에 보이지 않게 설정합니다. 하지만 정확한 디렉토리명(공유명)을 입력하면 해당 폴더로 접근가능합니다.

 


 

4. 설정 적용 전 필수 체크리스트

설정 파일을 수정했다면 아래 과정을 반드시 거쳐야 사고를 막을 수 있습니다.

  1. 문법 검사 (testparm): 설정 파일에 오타가 있는지 시스템이 먼저 검사합니다.

  2. 서비스 재시작: sudo systemctl restart smbd

 


 

Samba 설정은 단순히 파일을 주고받는 것을 넘어, 누구에게 무엇을 보여줄 것인가를 세밀하게 제어하는 과정입니다. 특히 hide unreadableaccess based share enum 옵션을 적절히 활용하면 훨씬 쾌적하고 안전한 공유 서버를 운영할 수 있습니다.

 

 

위로