Samba 설치 · 6 min read · Dec 08, 2025

CentOS 8에 Samba 서버 설치하는 방법

Samba는 Linux와 Windows 시스템 간에 파일, 폴더 및 프린터를 공유하는 데 사용할 수 있는 무료 오픈 소스 소프트웨어입니다. 또한 인증 및 권한 부여, 이름 해상도 및 서비스 발표에도 사용됩니다. Linux, Unix, OpenVMS 등 다양한 운영 체제에서 실행할 수 있습니다.

이 튜토리얼에서는 CentOS 8에서 Samba를 설치하고 독립형 공유 서버로 구성하는 방법을 배웁니다.

전제 조건

  • CentOS 8이 실행되는 서버.
  • 서버에 루트 비밀번호가 설정되어 있어야 합니다.

Samba 서버 설치

기본적으로 Samba 패키지는 CentOS 기본 저장소에서 사용할 수 있습니다. 다음 명령어로 설치할 수 있습니다:

dnf install samba samba-common samba-client -y

Samba를 설치한 후, SMB 서비스를 시작하고 시스템 재부팅 후 자동으로 시작되도록 설정하려면 다음 명령어를 사용합니다:

systemctl start smb  
systemctl enable smb

이제 다음 명령어로 Samba 서비스를 확인할 수 있습니다:

systemctl status smb

다음과 같은 출력이 표시되어야 합니다:

? smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 2072 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 25028)
   Memory: 33.8M
   CGroup: /system.slice/smb.service
           ??2072 /usr/sbin/smbd --foreground --no-process-group
           ??2074 /usr/sbin/smbd --foreground --no-process-group
           ??2075 /usr/sbin/smbd --foreground --no-process-group
           ??2076 /usr/sbin/smbd --foreground --no-process-group

Samba로 공개 공유 만들기

이 섹션에서는 Samba로 공개 공유를 만들어 모든 사용자가 비밀번호 없이 공개 공유 디렉토리에 접근할 수 있도록 합니다.

공개 공유 디렉토리 만들기

먼저, public이라는 이름의 공유 폴더를 만들고 public 디렉토리 안에 두 개의 파일을 생성합니다:

mkdir -p /samba/share/public  
touch /samba/share/public/file1.txt  
touch /samba/share/public/file2.txt

다음으로, 다음 명령어로 필요한 권한과 소유권을 부여합니다:

chmod -R 0755 /samba/share/  
chmod -R 0755 /samba/share/public  
chown -R nobody:nobody /samba/share  
chown -R nobody:nobody /samba/share/public

Samba 구성

다음으로, Samba를 구성하여 공개 디렉토리를 공유해야 합니다.

먼저, 다음 명령어로 /etc/samba/smb.conf 파일의 백업 복사본을 만듭니다:

mv /etc/samba/smb.conf /etc/samba/smb.bak

다음으로, 새로운 Samba 구성 파일을 생성합니다:

nano /etc/samba/smb.conf

다음 줄을 추가합니다:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = samba-server
security = user
map to guest = bad user
dns proxy = no

[Public]
path = /samba/share/public
browsable =yes
writable = yes
guest ok = yes
read only = no

파일을 저장하고 닫습니다. 그런 다음, 변경 사항을 적용하기 위해 Samba 서비스를 재시작합니다:

systemctl restart smb

다음으로, 다음 명령어로 Samba 구성을 테스트합니다:

testparm

다음과 같은 출력이 표시되어야 합니다:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    dns proxy = No
    map to guest = Bad User
    netbios name = SAMBA-SERVER
    security = USER
    server string = Samba Server %v
    idmap config * : backend = tdb


[Public]
    guest ok = Yes
    path = /samba/share/public
    read only = No

SELinux 및 방화벽 구성

다음으로, 다음 명령어로 공유 디렉토리에 적절한 SELinux 불리언 및 보안 컨텍스트 값을 설정합니다:

setsebool -P samba_export_all_ro=1 samba_export_all_rw=1  
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"  
restorecon /samba/share/public

다음으로, 다음 명령어로 firewalld를 통해 모든 Samba 서비스를 허용합니다:

firewall-cmd --add-service=samba --zone=public --permanent  
firewall-cmd --reload

Ubuntu Gnome에서 Samba 공유 접근하기

Samba 공유에 접근하려면 원격 머신으로 가서 Gnome 파일 관리자를 열고 아래와 같이 서버에 연결을 클릭합니다:

Gnome에서 SAMBA 접근하기

Samba 서버 IP 주소를 입력하고 연결 버튼을 클릭합니다. 성공적으로 연결되면 다음 화면에서 Samba 공유를 볼 수 있습니다:

파일 탐색기에서 Samba 공유

이제 공개 디렉토리를 클릭하면 다음 화면에서 파일을 볼 수 있습니다:

파일 목록

Ubuntu 명령줄에서 Samba 공유 접근하기

명령줄에서 Samba 공유에 접근할 수도 있습니다.

먼저, 다음 명령어로 사용 가능한 모든 Samba 공유를 나열합니다:

smbclient -L //45.58.38.51

다음과 같은 출력이 표시되어야 합니다:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Sharename       Type      Comment
    ---------       ----      -------
    Public          Disk      
    IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

cifs 프로토콜을 사용하여 Samba 공유를 마운트할 수도 있습니다. 그렇게 하려면, 다음 명령어로 cifs-utils 패키지를 설치합니다:

apt-get install cifs-utils -y

다음으로, 다음 명령어로 Samba 공유를 /mnt 디렉토리에 마운트합니다:

mount -t cifs //45.58.38.51/public /mnt/

다음과 같이 비밀번호를 입력하라는 메시지가 표시됩니다:

Password for root@//45.58.38.51/public: 

비밀번호를 입력하지 않고 Enter를 눌러 Samba 공유를 마운트합니다:

이제 /mnt 디렉토리에서 Samba 공유에 접근할 수 있습니다:

ls /mnt/

다음과 같은 출력이 표시되어야 합니다:

file1.txt  file2.txt

Samba로 개인 공유 만들기

이 섹션에서는 Samba로 개인 공유를 만들어 인증된 사용자만 개인 공유 디렉토리에 접근할 수 있도록 합니다.

사용자 및 그룹 만들기

먼저, 다음 명령어로 private이라는 이름의 그룹을 만듭니다:

groupadd private

다음으로, private 그룹에 추가된 privateuser라는 이름의 새 사용자를 만듭니다:

useradd -g private privateuser

다음으로, 다음 명령어로 사용자 비밀번호를 설정합니다:

smbpasswd -a privateuser

출력:

New SMB password:
Retype new SMB password:
Added user privateuser.

개인 공유 디렉토리 만들기

다음으로, private이라는 이름의 공유 폴더를 만들고 private 디렉토리 안에 두 개의 파일을 생성합니다:

mkdir -p /samba/share/private  
touch /samba/share/private/private1.txt  
touch /samba/share/private/private2.txt

다음으로, 다음 명령어로 적절한 권한과 소유권을 부여합니다:

chmod -R 0770 /samba/share/private  
chown -R root:private /samba/share/private

다음으로, 다음 명령어로 개인 디렉토리에 대한 SELinux 컨텍스트를 구성합니다:

semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"  
restorecon /samba/share/private

Samba 구성

다음으로, Samba 구성 파일을 열고 개인 공유를 정의합니다:

nano /etc/samba/smb.conf

파일 끝에 다음 줄을 추가합니다:

[Private]
path = /samba/share/private
valid users = @private     
guests ok = no
writable = yes
browsable = yes

파일을 저장하고 닫은 후, 변경 사항을 적용하기 위해 Samba 서비스를 재시작합니다:

systemctl restart smb

다음으로, 다음 명령어로 Samba 구성을 확인합니다:

testparm

다음과 같은 출력이 표시되어야 합니다:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    dns proxy = No
    map to guest = Bad User
    netbios name = SAMBA-SERVER
    security = USER
    server string = Samba Server %v
    idmap config * : backend = tdb


[Public]
    guest ok = Yes
    path = /samba/share/public
    read only = No


[Private]
    path = /samba/share/private
    read only = No
    valid users = @private

Ubuntu 명령줄에서 Samba 공유 접근하기

먼저, 다음 명령어로 사용 가능한 공유에 접근합니다:

smbclient -L //45.58.38.51

다음과 같은 출력이 표시되어야 합니다:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Sharename       Type      Comment
    ---------       ----      -------
    Public          Disk      
    Private         Disk      
    IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

다음으로, Samba 서버에 연결하고 다음 명령어로 사용 가능한 공유를 나열합니다:

smbclient //45.58.38.51/private -U privateuser

다음과 같이 비밀번호를 입력하라는 메시지가 표시됩니다:

Enter privateuser's password: 

비밀번호를 입력하고 Enter를 눌러 Samba 셸에 접근합니다:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]
smb: \>

이제 다음 명령어로 사용 가능한 공유를 나열합니다:

smb: \> ls

다음과 같은 출력이 표시되어야 합니다:

  
.                                   D        0  Tue Mar  3 10:03:22 2020
  ..                                  D        0  Tue Mar  3 10:01:56 2020
  private1.txt                        N        0  Tue Mar  3 10:03:17 2020
  private2.txt                        N        0  Tue Mar  3 10:03:22 2020

        51194 blocks of size 2097152. 49358 blocks available

이제 다음 명령어로 Samba 셸에서 나갑니다:

smb: \>exit

/opt 디렉토리에 Samba 공유를 마운트할 수도 있습니다:

mount -t cifs -o user=privateuser //45.58.38.51/private /opt

다음과 같이 비밀번호를 입력하라는 메시지가 표시됩니다:

Password for privateuser@//45.58.38.51/private:  *********

비밀번호를 입력하고 Enter를 눌러 Samba 공유를 마운트합니다.

이제 /opt 디렉토리에서 Samba 공유를 확인할 수 있습니다:

ls /opt/

출력:

private1.txt  private2.txt

Ubuntu Gnome에서 Samba 공유 접근하기

Samba 공유에 접근하려면 원격 머신으로 가서 Gnome 파일 관리자를 열고 아래와 같이 서버에 연결을 클릭합니다:

Gnome에서 개인 공유 접근하기

Samba 서버 IP 주소를 입력하고 연결 버튼을 클릭합니다. 성공적으로 연결되면 다음 화면에서 Samba 공유를 볼 수 있습니다:

공개 및 개인 공유

이제 개인 디렉토리를 클릭하고 사용자 이름과 비밀번호를 입력한 후, 연결 버튼을 클릭하면 다음 화면에서 파일을 볼 수 있습니다:

사용자 이름과 비밀번호로 로그인

파일

축하합니다! CentOS 8에 Samba 서버를 성공적으로 설치하고 구성했습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.