Linux Samba 설치 및 설정

@lim · October 28, 2024

삼바(Samba)는 윈도우와 유닉스 계열 같이 타 시스템 간의 피일이나 프린터 자원을 공유할 수 있도록 도와주는 유닉스 계열 프로그램이다.

마이크로소프트와 인텔에서 개발한 SMB(Server Message Block) 네트워크 프로토콜을 사용한다.

현재는 CIFS(Common Internet File System)로 확장되어 있다고 한다.

1. 설치

# 데비안(우분투) 계열
apt install samba

# RHEL (록키, 센트) 계열
yum install samba # 7 이하
dnf install samba # 8 이상

2. 계정 등록하기

smbpasswd 명령어를 통해 samba 서버에 접속할 계정을 등록할 수 있다.

리눅스 계정으로 samba 계정을 등록할 수 있다. (리눅스에 없는 계정명은 등록 불가)

root 계정을 사용하지 않도록 유의하자.

# samba에 필요한 리눅스 계정 생성 (필요 시)
adduser username 
# useradd로 생성하면 passwd로 비밀번호도 따로 설정해야 함

# samba 계정 생성
smbpasswd -a username

smbpasswd 옵션은 다음과 같다.

옵션 설명 예시
-a Samba 사용자 추가 smbpasswd -a username
-x Samba 사용자 삭제 smbpasswd -x username
-d 사용자 계정 비활성화 smbpasswd -d username
-e 사용자 계정 활성화 smbpasswd -e username
-n 사용자 암호 제거 smbpasswd -n username

-n 옵션을 사용하기 위해선 smb.confnull password = yes 라고 설정되어 있어야 한다.

3. 설정 파일 작업

설정 파일 위치는 다음과 같다.
/etc/samba/smb.conf


에디터로 열어준다.

vi /etc/samba/smb.conf
vim /etc/samba/smb.conf

nano /etc/samba/smb.conf

smb.conf 파일 내용 일부
smb.conf 파일 내용 일부


기본적으로 4개의 Section으로 구성되어 있다.

  • [global] : 전역 설정
  • [homes] : 각 홈디렉토리 권한
  • [printers] : 프린터 관련 권한
  • [print$] : 프린터 드라이버

공유하기 위한 폴더 섹션을 추가해 준다.

대괄호 [] 안의 내용이 폴더로 보여준다.

[share]
  comment = samba share directory
  path = /app
  browseable = yes
  read only = no
  writable = yes
  guest ok = no
  valid user = username
  create mask = 0755
  directory mask = 0755

옵션 설명
path 공유 디렉토리 경로 /share/directory
comment 공유 설명 텍스트
browseable 공유 목록에 표시 여부 yes/no
read only 읽기 전용 여부 yes/no
writable 쓰기 가능 여부 yes/no
guest ok 게스트 접근 허용 yes/no
valid users 접근 허용할 사용자/그룹 user1 @group1
write list 쓰기 허용할 사용자/그룹 user1 @group1
create mask 파일 생성 권한 0660, 0644
directory mask 디렉토리 생성 권한 0770, 0755
force group 강제 그룹 지정 groupname
force user 강제 사용자 지정 username

자세한 건 공식 문서를 참고

4. 서비스 재시작

# 서비스 재시작
systemctl restart smbd

# 서비스 상태 확인
systemctl status smbd
  • 방화벽을 사용하는 경우 UDP 138, 139 포트가 열려 있어야 한다.

5. 클라이언트에서 접속하기

서버 ip 확인하기

ip addr 또는 ifconfig 명령어를 통해 서버 ip를 확인한다.

  • ip addr
    서버 아이피 확인 - ip addr
    서버 아이피 확인 - ip addr
  • ifconfig
    서버 아이피 확인 - ifconfig
    서버 아이피 확인 - ifconfig

Windows에서 접속

탐색창 또는 실행(Win + R)에서 다음과 같이 입력해준다.

₩₩{아이피 주소}

windows 탐색창
windows 탐색창
windows 실행
windows 실행

전에 등록한 계정과 비밀번호를 입력한다.

모두 접근할 수 있게 했다면 입력하지 않고 확인을 누른다.

windows smb 로그인
windows smb 로그인

접속할 폴더를 선택하면 된다.

browseable 옵션을 no로 한 폴더는 보여주지 않는다.

(서버에 연결에서 폴더까지 입력하면 된다. 예 : ₩₩172.30.1.2₩docker)

windows smb 폴더 선택
windows smb 폴더 선택

폴더에 접근한 것을 확인할 수 있다.

windows smb 접속 파일 목록
windows smb 접속 파일 목록

Mac에서 접속

Finder에서 command + K 를 누르면 서버에 연결 팝업창이 뜬다.

samba로 연결하니 다음과 같이 입력해준다.

smb://{접속할 아이피}

mac smb 접속
mac smb 접속

전에 등록한 계정과 비밀번호를 입력한다.

모두 접근할 수 있게 했다면 방문자로 연결한다.

mac smb 로그인
mac smb 로그인

접속할 폴더를 선택하면 된다.

browseable 옵션을 no로 한 폴더는 보여주지 않는다.

(서버에 연결에서 폴더까지 입력하면 된다. 예 : smb://172.30.1.2/docker)

mac smb 폴더 선택
mac smb 폴더 선택

로그인에 성공했다면 폴더에 접근한 것을 확인할 수 있다.

mac finder 서버 접속 파일들
mac finder 서버 접속 파일들

접송 상태 확인

smbstatus 명령어를 통해 samba 서버에 접속한 클라이언트와 상태를 확인할 수 있다.

samba 클라이언트 상태 확인
samba 클라이언트 상태 확인

@lim
기억은 기록기록