Linux

[Linux] 삼바(SAMBA) 서버 관리

thdwldud 2026. 1. 19. 22:38

환경 설정 파일 : smb.conf

  • 삼바 서버의 환경 설정 파일인 smb.conf는 삼바 서버를 제어하고, 공유시킬 시스템 자원에 대한 다양한 설정을 함
  • 이 파일은 /etc/samba 디렉터리 안에 존재하고, 파일 안의 구성은 윈도우의 환경 설정 파일인 win.ini와 비슷
  • smb.conf 파일은 [ ]기호를 이용해서 섹션(Section)으로 구분하고 설정
💡 smb.conf 도움

Rocky Linux 8의 smb.conf 파일은 samba-common이라는 패키지에 의해 설치되는데, 이전 버전과 다르게 설명없이 주요 설정만 나열되어 있음
자세한 정보를 확인하려면 /etc/samba/smb.conf.example을 참고하거나 ‘man smb.conf’ 명령으로 확인

 

명령어 사용법

 

1. smb.conf 파일 내부 유형

유형 설명
#으로 시작하는 행 이 행은 주석으로 간주하여 무시됨
;으로 시작하는 행 이 행도 주석으로 간주하여 무시됨
보통 이런 행은 설정 행이 작동하지 않도록 설정하거나 설명을 추가할 때 사용됨
# 및 ; 기호가 모두 주석으로 사용되는 이유는 유닉스 계열은 #, 윈도우는 ;을 주석으로 사용하기 때문에 삼바 서버에서는 모두 주석으로 인정
[ ]을 사용하는 행 섹션을 정의하는 역할을 하고, 하나의 섹션이 정의된 후 그 다음 섹션이 정의될 때까지의 행들은 해당 섹션에 속함
name = value 행 사용하는 옵션과 해당 값을 설정하는 행

 

2. smb.conf 의 주요 섹션

섹션 설명
[global] 삼바 서버의 전체적인 환경 설정을 담당하는 섹션
[homes] 각 사용자들이 자신의 홈 디렉터리로 접근할 때의 권한을 설정하는 섹션
[printers] 프린터 관련 권한을 설정하는 섹션
[print$] 프린터 드라이버 관련 섹션

 

3. [global] 섹션의 주요 항목

workgroup = SAMBA

  • 윈도우의 작업 그룹에 해당하는 항목으로 공유 그룹명을 지정

server string = Samba Server

  • 서버에 대한 설명을 설정

netbios name = MYSERVER

  • 윈도우에서 이름으로 접속할 때 관련 이름을 지정

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24

  • 네트워크 인터페이스별로 접근 제어할 때 설정

hosts allow = 127. 192.168.12. 192.168.13.2/24

  • 삼바 서버에 접속을 허용할 호스트를 지정할 때 사용
  • 접속 허용할 호스트는 IP 주소, 호스트명 등을 지정할 수 있으며, 네트워크/넷마스크 형태로도 지정할 수 있음
  • 또한 EXCEPT라는 키워드와 와일드 문자도 사용할 수 있음
  • 참고로 삼바 서버에 접속이 불가능하게 하려면 hosts deny로 설정

설정 예

hosts allow = 192.168.1. 127.

  • 192.168.1.0 네트워크 대역에 속한 모든 호스트들과 로컬 시스템(127.0.0.0 네트워크)에서 접속할 수 있음

hosts allow = 192.168.1. EXCEPT 192.168.1.220 192.168.1.224

  • 192.168.1.220과 192.168.1.224를 제외한 192.168.1.0 네트워크에 속한 모든 호스트들이 삼바 서버에 접속할 수 있음

hosts allow = 192.168.1.0/255.255.255.0

  • 192.168.1.0 네트워크에 속한 모든 호스트들의 접속을 허용

hosts allow = posein_pc, yuloje_pc

  • posein_pc과 yuloje_pc라는 호스트들만 삼바 서버 접속을 허용

log_file =/var/log/samba/log.%m

  • 삼바 서버에 접속하는 호스트들의 로그를 기록하는 파일을 지정

max log size = 50

  • 로그 파일의 최대 크기를 설정하는 부분으로 단위는 KB
  • 설정된 값을 초과하게 되면 .old라는 확장자를 갖는 파일로 저장하고 새로운 파일이 생성됨
  • 0으로 설정하면 파일 크기의 제한이 없음

security = user

  • 삼바 서버에 접속할 때 인증 모드를 설정하는 항목으로 주요 모드는 다음과 같음
모드 설명
user 삼바 서버에 접속할 때 패스워드를 입력해야 함
domain 또는 ads 윈도우의 도메인 컨트롤러 (Domain Controller)에 전달하여 유효한 사용자 여부를 확인할 때 사용
ads는 Active Directory Server를 사용하는 경우에 지정

passdb backend = tdbsam

  • security가 user 일 때 사용자의 패스워드를 설정하는 방식

 

4. [share] 섹션의 주요 항목

옵션 설명
comment 간단한 설명을 설정
path 공유 디렉터리의 경로를 설정
read only 공유 디렉터리를 읽기 전용으로 설정
writable, write ok 공유 디렉터리를 쓰기 가능하게 설정
valid users 공유 디렉터리를 이용할 수 있는 사용자를 지정
write list 공유 디렉터리에 접근 및 쓰기 권한을 행사할 수 있는 사용자를 지정
그룹인 경우에는 그룹명 앞에 @를 붙이면됨
public, guest ok 다른 사용자들이 이용할 수 있도록 설정할 때 사용
browseable, browsable 공유 디렉터리의 리스트를 보여줄 때 설정
printable 공유 디렉터리에 스풀 파일을 지정할 때 설정
create mask, create mode 파일을 생성할 때 허가권을 지정할 때 설정

 

공유 설정 예

[sdata]
comment = share directory
path =/sdata
public = yes
write list = @insa
  • 윈도우에서 접근할 때 폴더 이름은 sdata로 설정
  • 설명은 share directory로 설정
  • 공유 디렉터리 경로는 /sdata로 설정
  • 모든 사용자가 접근 가능하도록 설정
  • 파일 생성 및 삭제는 insa 그룹에 속한 사용자들만 가능하도록 설정
[www]
comment = Web Directory
path =/usr/local/apache/htdocs
valid users = phpman webgirl
writable = yes
  • 윈도우에서 접근할 때 폴더 이름은 www로 설정
  • 설명은 Web Directory로 설정
  • 공유 디렉터리 경로는 /usr/local/apache/htdocs로 설정
  • 접근 가능한 사용자는 phpman과 webgirl만 설정
  • 두 사용자 모두 파일 생성 및 삭제 권한을 부여
[www]
comment = Web Directory
path =/usr/local/apache/htdocs
valid users = phpman webgirl
write list = phpman
  • 윈도우에서 접근할 때 폴더 이름은 www로 설정
  • 설명은 Web Directory로 설정
  • 공유 디렉터리 경로는 /usr/local/apache/htdocs로 설정
  • 접근 가능한 사용자는 phpman과 webgirl만 설정
  • 파일 생성 및 삭제 권한은 phpman만 가능하도록 설정

💡위치 / 옵션 찾기

smb.conf.example 파일 참고

  • find / -name smb.conf
    • smb.conf.example

  • global 섹션 자주 나오는 부분은 암기 해두는 것을 권장! 
    • workgroup = 공유 그룹명
    • server string = 서버에 대한 설명
    • netbios name = 윈도우에서 접속 관련 이름
    • hosts allow = 접근 제어 (192.168.5. 포맷)

  • 공유 설정 자주 나오는 부분은 암기 해두는 것을 권장!
    • [폴더명] : 윈도우에서 접근 할 때 폴더명
    • path : 공유 디렉터리 경로
    • valid users = 아이디1 아이디2 : 접근 가능 사용자
    • write list = 아이디 : 파일 생성 및 삭제 권한
    • writable = yes : valid users 모두 파일 생성 삭제 권한