이번 실습에서는 리눅스에서 Windows와 파일 공유가 가능한 네트워크 서버 구성을 목표로 Samba(삼바)를 설치하고 설정하였다. Samba는 윈도우에서 사용되는 SMB/CIFS 프로토콜을 리눅스에서도 사용할 수 있도록 해주는 서비스로, 리눅스와 윈도우 간 파일 공유를 가능하게 해 준다.
1. Samba란?
- Samba는 SMB(Server Message Block) 혹은 CIFS(Common Internet File System) 프로토콜을 구현한 리눅스 소프트웨어이다.
- 주로 Windows <=> Linux 간 파일/프린터 공유를 위해 사용된다.
- Windows에서 \\서버 IP 형식으로 접속 가능하다.
2. Samba 설치 및 기본 설정
apt update
apt install samba
Samba 설정 파일은 하나로 통합되어 있으며, 아래 경로에 위치한다.
/etc/samba/smb.conf
사용자 추가 (Samba 전용)
smbpasswd -a ahhyun
해당 명령어로 Samba 인증용 계정을 추가한다. 이는 리눅스 시스템 계정과는 별개로 Samba 공유 접근을 위해 필요하다.
3. Samba 공유 설정 예시
설정 파일 (smb.conf)에 다음과 같은 내용을 추가하였다.
[share]
comment = samba shared
path = /root/smbdir
read only = no
writeable = yes
guest ok = no
valid user = ahhyun
create mask = 0777
directory mask = 0777
설정 항목 설명
항목 | 설명 |
[share] | Windows에서 \\IP\share로 접근할 수 있는 공유 이름 |
path | 실제 공유되는 디렉터리 경로 (/root/smbdir) |
read only=no | 쓰기 가능 |
writeable=yes | 파일 수정/생성 허용 |
guest ok=no | 게스트(비인증 사용자) 접근 차단 |
valid user=ahhyun | 접근 허용 사용자 제한 |
create mask, directory mask | 생성되는 파일/폴더의 기본 권한(0777=모두 허용) |
4. Windows와 Linux에서 Samba 접속 방법
- Windows : 파일 탐색기 주소창에 \\서버 IP 입력 => 로그인 => 공유 폴더 접근
- Linux (cifs-utils 필요) : 리눅스에서는 CIFS 방식으로 마운트 하여 접근 가능하다.
mount -o username=ahhyun,password=1 //IP주소/share /mnt/mountpoint
위 명령어는 해당 공유 디렉터리를 로컬 디렉터리로 마운트 하는 방식이다.
5. 실습 자동화 스크립트
다음은 실습에 사용한 Samba 환경 자동 구성 스크립트 일부이다.
Samba.sh
#!/bin/bash
apt update
apt install -y samba
USERNAME="ahhyun"
PASSWORD="1"
useradd -m $USERNAME
echo -e "$PASSWORD\n$PASSWORD" | smbpasswd -a $USERNAME
SHARE_NAME="Sharedfolder"
SHARE_PATH="/mnt/shared"
mkdir -p $SHARE_PATH
chown -R $USERNAME $SHARE_PATH
echo "[$SHARE_NAME]
comment = this is shared folder
path = $SHARE_PATH
read only = no
guest only = no
valid user = $USERNAME" >> /etc/samba/smb.conf
systemctl restart smbd
ufw allow Samba
이 스크립트를 실행하면:
- 사용자 생성
- Samba 사용자 등록
- 공유 디렉터리 생성
- 공유 설정 자동 적용
- 방화벽 허용까지 한 번에 수행된다.
6. 마무리
이번 실습을 통해 리눅스 시스템에서 Samba를 활용한 파일 공유 서버를 구축하고, 실무 환경에서 사용자 계정을 관리하며 보안 설정까지 다루는 과정을 익혔다. 특히, Windows 클라이언트와 연동해 직접 파일 공유가 가능하다는 점에서 매우 유익한 실습이었다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 Application 네트워크 서버 - SSH 서버 구축 및 MobaXterm 활용 (2) | 2025.05.25 |
---|---|
리눅스 핵심 네트워크 서버 - NFS(Network File System) 서버 구축 및 마운트 실습 (2) | 2025.05.25 |
리눅스 시스템 관리 실습 - 사용자, 패키지, 서비스, 방화벽 관리 (4) | 2025.05.24 |
리눅스 서버 구축 실습 - 5편 - Virtual Host 설정과 SSL 인증서 적용 프로젝트 (2) | 2025.05.23 |
리눅스 서버 구축 실습 - 4편 - phpMyAdmin 설치와 보안 설정 (2) | 2025.05.23 |