Samba SMB.CONF 설정 상세 분석

글로벌 설정 (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

태그: Samba smb.conf smb 네트워크 공유 파일 서버

7월 25일 06:39에 게시됨