글로벌 설정 (Global Settings)
Samba 서버의 전반적인 동작 방식을 정의합니다.
[global]
# 설정 파일 경로 지정 (호스트별 설정 분기 가능)
config file = /usr/local/samba/lib/smb.conf.%m
# 작업 그룹 또는 도메인 설정
workgroup = WORKGROUP
# 서버 설명 문자열 (버전 정보 포함 가능)
server string = Samba Server Version %v
# NetBIOS 이름 설정 (DNS 이름의 첫 부분과 다르게 설정 권장)
netbios name = smbserver
# Samba 서버가 리스닝할 네트워크 인터페이스 지정 (이름 또는 IP/서브넷 마스크)
interfaces = lo eth0 192.168.80.2/24 192.168.81.2/24
# 접속 허용 IP 주소 또는 서브넷 (hosts deny와 반대 개념, 둘 중 하나만 사용)
# 예: 192.168.80.x 대역 허용, 단 192.168.80.130 제외
hosts allow = 192.168.80. EXCEPT 192.168.80.130
# 예: 192.168.80.0/24 서브넷 전체 허용
hosts allow = 192.168.80.0/24
# 특정 호스트 또는 @넷BIOS도메인 허용
hosts allow = M1, M2
hosts allow = @xq
# 최대 동시 접속자 수 (0은 무제한)
max connections = 0
# 미사용 연결 해제 시간 (분 단위, 0은 자동 해제 안 함)
deadtime = 0
# WINS/NMBD 데몬을 위한 시간 서버 설정
time server = yes
# 로그 파일 경로 및 이름 지정 (호스트별 로그 분리 가능)
log file = /var/log/samba/log.%m
# 로그 파일 최대 크기 (kB 단위, 0은 무제한)
max log size = 50
# 사용자 인증 방식 설정
# share: 사용자 이름/암호 불필요 (보안 낮음)
# user: Samba 자체 계정/암호 검증 (권장)
# server: 다른 Samba/Windows NT 서버에 인증 위임 (프록시 인증)
# domain: PDC(Primary Domain Controller)를 통한 도메인 인증
security = user
# 사용자 인증 백엔드 설정
# smbpasswd: smbpasswd 파일을 이용한 인증 (기본값)
# tdbsam: TDB 데이터베이스 파일(passdb.tdb)을 이용한 인증 (권장)
# ldapsam: LDAP 서버를 이용한 인증
passdb backend = tdbsam
# 사용자 비밀번호 암호화 사용 여부 (Windows 호환성을 위해 'yes' 권장)
encrypt passwords = yes
# smbpasswd 파일 경로 지정 (security = user 또는 share 일 때 사용)
smb passwd file = /etc/samba/smbpasswd
# 사용자 이름 매핑 파일 경로 (UNIX 사용자 이름을 Windows 스타일로 변경)
username map = /etc/samba/smbusers
# 게스트 사용자 계정 지정
guest account = nobody
# 소켓 옵션 (TCP_NODELAY, SO_RCVBUF, SO_SNDBUF 등으로 전송 속도 최적화)
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# 도메인 마스터 브라우저 역할 지정
domain master = yes
# 로컬 마스터 브라우저 역할 지정 (yes로 설정해도 선출 과정을 거침)
local master = yes
# 주 마스터 브라우저 선출 우선순위 지정 (yes일 경우 domain master도 yes 권장)
preferred master = yes
# OS 레벨 설정 (마스터 브라우저 선출 우선순위 결정, PDC 구성 시 높게 설정)
os level = 200
# 도메인 로그온 기능 사용 여부 (PDC/BDC 구성 시 'yes')
domain logons = yes
# 사용자 로그인 스크립트 설정 (예: %u.bat - 사용자별, start.bat - 공통)
logon script = %u.bat
# WINS 서버 기능 사용 여부
wins support = yes
# 외부 WINS 서버 사용 시 설정 (wins server IP)
wins server = wins_server_ip
# WINS 프록시 기능 사용 여부
wins proxy = yes
# DNS 프록시 기능 사용 여부
dns proxy = yes
# 부팅 시 프린터 공유 사용 여부
load printers = yes
# 프린터 설정 파일 지정 (CUPS 사용 시 cups)
printcap name = cups
# 프린터 시스템 종류 지정 (bsd, sysv, cups 등)
printing = cups
공유 정의 (Share Definitions)
네트워크로 공유할 디렉토리 또는 프린터의 속성을 정의합니다.
[공유명]
# 공유에 대한 설명 문자열
comment = Share Description
# 공유 디렉토리 경로 (동적 경로 설정 가능: %u, %m 등)
path = /path/to/share/%u
# 공유 폴더 탐색 허용 여부
browseable = yes
# 공유 폴더 쓰기 허용 여부
writable = yes
# 공유 리소스 사용 가능 여부
available = yes
# 공유 관리자 지정 (security = share 시 무효)
admin users = bobyuan, jane
# 허용된 사용자 지정 (그룹 사용 가능: @groupname)
valid users = bobyuan, @bob, @tech
# 거부된 사용자 지정 (그룹 사용 가능: @groupname)
invalid users = root, @bob
# 쓰기 권한을 가진 사용자 지정
write list = bobyuan, @bob
# 게스트 계정 접근 허용 여부 (public과 동일)
public = yes
# 게스트 계정 접근 허용 여부 (guest ok와 동일)
guest ok = yes
특수 공유 (Special Shares)
Samba에서 미리 정의된 특별한 용도의 공유 설정입니다.
# 사용자 홈 디렉토리 자동 생성 및 공유
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S ; %S는 현재 로그인한 사용자 이름을 의미
# 모든 프린터 공유
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
# 네트워크 로그온 서비스 (Windows 클라이언트 부팅 시 사용)
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
# 사용자 프로필 공유 (Windows 클라이언트 프로필 저장)
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes