Ubuntu에서 Samba 파일 서버 구축하기: 사내 공유폴더 만들기 (사용자별 보안 설정 포함)
안녕하세요! 오늘은 Ubuntu 서버를 이용해 사내 네트워크에서 모든 직원이 접속할 수 있는 파일 공유 서버를 구축하는 방법을 알아보겠습니다. 특히 사용자별로 전용 폴더를 만들고 비밀번호로 보호하는 방법까지 다루어 보겠습니다!
준비물
- Ubuntu가 설치된 컴퓨터
- 고정 IP 설정을 위한 네트워크 정보
- 공유할 내장/외장 하드디스크
- 직원 명단 (사용자 계정 생성용)
1단계: Samba 설치하기
Samba는 Linux와 Windows 간 파일 공유를 가능하게 해주는 프로토콜입니다.
sudo apt update
sudo apt install samba samba-common-bin
2단계: 고정 IP 설정하기
DHCP로 IP가 계속 바뀌면 불편하니 고정 IP를 설정해봅시다.
현재 IP 확인
ip addr show
GUI로 고정 IP 설정 (추천)
- 네트워크 설정 열기
nm-connection-editor- 현재 Wi-Fi 연결 선택 → 톱니바퀴 클릭
- IPv4 탭에서:
- 방법: "수동" 선택
- 주소: 192.168.0.50 (원하는 IP)
- 넷마스크: 255.255.255.0
- 게이트웨이: 192.168.0.1 (라우터 IP)
- DNS: 8.8.8.8, 8.8.4.4
- 적용 후 Wi-Fi 재연결
설정 확인
ip addr show wlo1 | grep inet
# 192.168.0.50이 표시되면 성공!
3단계: 공유 폴더 구조 생성
공용 폴더 (모든 직원 접근 가능)
sudo mkdir -p /srv/samba/public
sudo chmod 777 /srv/samba/public
사용자별 전용 폴더
# 사용자 전용 폴더의 루트 디렉토리 생성
sudo mkdir -p /srv/samba/users
외장 하드디스크 설정
# 외장 하드 연결 확인
lsblk
# 마운트 포인트 생성
sudo mkdir -p /media/external
# 필요시 수동 마운트
sudo mount /dev/sdb1 /media/external
# 외장 하드에도 사용자 폴더 구조 생성
sudo mkdir -p /media/external/users
4단계: 사용자 계정 생성
직원별로 시스템 사용자와 Samba 사용자를 생성합니다.
예시: 김철수, 이영희, 박민수 직원 추가
# 시스템 사용자 생성 (홈 디렉토리 없이)
sudo useradd -M -s /sbin/nologin kimcs
sudo useradd -M -s /sbin/nologin leehy
sudo useradd -M -s /sbin/nologin parkms
# Samba 비밀번호 설정
sudo smbpasswd -a kimcs
sudo smbpasswd -a leehy
sudo smbpasswd -a parkms
# Samba 사용자 활성화
sudo smbpasswd -e kimcs
sudo smbpasswd -e leehy
sudo smbpasswd -e parkms
사용자별 전용 폴더 생성
# 내장 하드디스크
sudo mkdir -p /srv/samba/users/kimcs
sudo mkdir -p /srv/samba/users/leehy
sudo mkdir -p /srv/samba/users/parkms
# 소유권 설정
sudo chown kimcs:kimcs /srv/samba/users/kimcs
sudo chown leehy:leehy /srv/samba/users/leehy
sudo chown parkms:parkms /srv/samba/users/parkms
# 권한 설정 (본인만 읽기/쓰기 가능)
sudo chmod 700 /srv/samba/users/kimcs
sudo chmod 700 /srv/samba/users/leehy
sudo chmod 700 /srv/samba/users/parkms
5단계: Samba 설정
설정 파일 백업
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
설정 파일 편집
sudo nano /etc/samba/smb.conf
[global] 섹션에 다음 내용 추가:
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
security = user
map to guest = never
encrypt passwords = yes
파일 끝에 다음 내용 추가:
# 공용 폴더 (모든 직원 접근 가능)
[Public]
comment = 공용 폴더
path = /srv/samba/public
browseable = yes
read only = no
guest ok = no
valid users = @sambashare
create mask = 0664
directory mask = 0775
# 사용자별 전용 폴더 (자동 매핑)
[Users]
comment = 개인 폴더
path = /srv/samba/users/%U
browseable = no
read only = no
valid users = %S
create mask = 0600
directory mask = 0700
# 김철수 전용 폴더
[kimcs]
comment = 김철수 전용 폴더
path = /srv/samba/users/kimcs
browseable = yes
read only = no
valid users = kimcs
create mask = 0600
directory mask = 0700
# 이영희 전용 폴더
[leehy]
comment = 이영희 전용 폴더
path = /srv/samba/users/leehy
browseable = yes
read only = no
valid users = leehy
create mask = 0600
directory mask = 0700
# 박민수 전용 폴더
[parkms]
comment = 박민수 전용 폴더
path = /srv/samba/users/parkms
browseable = yes
read only = no
valid users = parkms
create mask = 0600
directory mask = 0700
# 외장 하드디스크 공용 폴더
[External_Public]
comment = 외장 하드 공용 폴더
path = /media/external/public
browseable = yes
read only = no
valid users = @sambashare
create mask = 0664
directory mask = 0775
공용 폴더 접근을 위한 그룹 설정
# sambashare 그룹 생성
sudo groupadd sambashare
# 모든 사용자를 sambashare 그룹에 추가
sudo usermod -a -G sambashare kimcs
sudo usermod -a -G sambashare leehy
sudo usermod -a -G sambashare parkms
Samba 서비스 재시작
sudo systemctl restart smbd
sudo systemctl enable smbd
6단계: 방화벽 설정
# 방화벽 상태 확인
sudo ufw status
# Samba 포트 허용
sudo ufw allow samba
7단계: 외장 하드디스크 문제 해결
외장 하드가 인식되지 않는다면:
# NTFS 지원 설치 (Windows 포맷 하드디스크)
sudo apt install ntfs-3g
# exFAT 지원 설치
sudo apt install exfat-fuse exfat-utils
클라이언트 접속 방법
서버 IP는 192.168.0.50입니다.
Windows에서 접속
개인 폴더 접속
- Win + R 키
\\192.168.0.50\사용자명입력 (예:\\192.168.0.50\kimcs)- 사용자명과 비밀번호 입력
- "자격 증명 기억" 체크하면 다음부터 자동 로그인
공용 폴더 접속
\\192.168.0.50\Public입력- 본인의 사용자명과 비밀번호 입력
Mac에서 접속
개인 폴더 접속
- Finder 열기
- Cmd + K
smb://192.168.0.50/사용자명입력 (예:smb://192.168.0.50/kimcs)- 연결 클릭
- 등록된 사용자 선택 후 사용자명과 비밀번호 입력
Linux에서 접속
파일 관리자에서 smb://192.168.0.50/사용자명 입력
사용자 관리
새 직원 추가
# 시스템 사용자 생성
sudo useradd -M -s /sbin/nologin 새사용자명
# Samba 비밀번호 설정
sudo smbpasswd -a 새사용자명
# 전용 폴더 생성
sudo mkdir -p /srv/samba/users/새사용자명
sudo chown 새사용자명:새사용자명 /srv/samba/users/새사용자명
sudo chmod 700 /srv/samba/users/새사용자명
# sambashare 그룹에 추가
sudo usermod -a -G sambashare 새사용자명
비밀번호 변경
sudo smbpasswd 사용자명
사용자 비활성화
sudo smbpasswd -d 사용자명
사용자 삭제
# Samba 사용자 삭제
sudo smbpasswd -x 사용자명
# 시스템 사용자 삭제
sudo userdel 사용자명
# 폴더는 수동으로 삭제 또는 백업
관리 팁
현재 연결 상태 확인
sudo smbstatus
특정 사용자 연결 확인
sudo smbstatus -u 사용자명
접속 로그 확인
sudo tail -f /var/log/samba/log.smbd
보안 강화 옵션
특정 IP 대역만 허용
smb.conf의 [global] 섹션에 추가:
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/0
접속 시간 제한
[global]
deadtime = 30 # 30분 동안 활동 없으면 연결 종료
파일 버전 관리
[사용자폴더]
vfs objects = recycle
recycle:repository = .recycle
recycle:versions = yes
자주 묻는 질문
Q: 비밀번호를 잊어버렸어요
A: 관리자가 sudo smbpasswd 사용자명 명령으로 재설정 가능
Q: 다른 사람 폴더가 보여요
A: 정상입니다. 보이기만 하고 접근은 불가능합니다. 숨기려면 browseable = no 설정
Q: 여러 명이 동시에 하나의 파일을 수정하면?
A: 먼저 연 사람이 쓰기 권한을 가지고, 나머지는 읽기 전용이 됩니다.
마무리
이제 각 직원이 자신만의 보안 폴더와 모두가 사용할 수 있는 공용 폴더를 가진 파일 서버가 완성되었습니다!
- 서버 IP: 192.168.0.50
- 개인 폴더: 본인만 접근 가능
- 공용 폴더: 모든 직원 접근 가능
- 보안: 사용자명/비밀번호 인증
추가로 부서별 그룹 폴더나 프로젝트별 폴더 등이 필요하다면 같은 방식으로 확장할 수 있습니다.
질문이나 문제가 있다면 댓글로 남겨주세요! 😊
LIST
'Study > Linux' 카테고리의 다른 글
| 🚀 Linux 서버에 새 사용자 계정 만들고 관리자 권한 설정하기 (0) | 2025.09.29 |
|---|---|
| 듀얼부팅 환경의 골치아픈 문제들: 우분투 vs 윈도우 완벽 해결 가이드 (4) | 2025.07.18 |
| 우분투 24.04에서 WordPress 완벽 설치 가이드: Nginx + PHP 8.3 + MariaDB (0) | 2025.06.29 |
| 🎉 새로운 VPS, 첫걸음을 안전하게 내딛는 방법! (초보자 가이드) (0) | 2025.06.21 |
| 우분투에서 소리가 너무 작다고요? 오디오 볼륨 200% 증폭하는 완벽 가이드! 🔊 (2) | 2025.06.19 |




