웹사이트 검색

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


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 센트OS 8
  • 센트OS 5.6

이 페이지에서

  1. 전제 조건
  2. Samba 서버 설치
  3. Samba로 공개 공유 만들기
    1. 공용 공유 디렉토리 생성
    2. Samba 구성
    3. SELinux 및 방화벽 구성\n

    1. 사용자 및 그룹 만들기
    2. 개인 공유 디렉토리 생성
    3. Samba 구성
    4. Ubuntu 명령줄에서 Samba 공유에 액세스

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

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

    전제 조건

    • CentOS 8을 실행하는 서버.\n
    • 서버에 루트 암호가 구성되어 있습니다.\n

    삼바 서버 설치

    기본적으로 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를 구성해야 합니다.

    먼저 다음 명령을 사용하여 /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

    다음으로 모든 Samba 서비스는 다음 명령을 사용하여 firewalld를 통해 제공됩니다.

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

    Ubuntu Gnome에서 Samba 공유에 액세스

    Samba 공유에 액세스하려면 원격 시스템으로 이동하여 Gnome 파일 관리자를 열고 아래와 같이 서버에 연결을 클릭하십시오.

    Samba 서버 IP 주소를 제공하고 연결 버튼을 클릭합니다. 성공적으로 연결되면 다음 화면에 Samba 공유가 표시되어야 합니다.

    이제 Public 디렉토리를 클릭하면 다음 화면에 파일이 표시됩니다.

    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 //45.58.38.51/public: 
    

    Samba 공유를 마운트하려면 암호를 입력하지 않고 Enter 키를 누르십시오.

    이제 /mnt 디렉터리에서 Samba 공유에 액세스할 수 있습니다.

    ls /mnt/

    다음 출력이 표시되어야 합니다.

    file1.txt  file2.txt
    

    Samba로 개인 공유 만들기

    이 섹션에서는 인증된 사용자만 개인 공유 디렉토리에 액세스할 수 있도록 Samba와 개인 공유를 생성합니다.

    사용자 및 그룹 만들기

    먼저 다음 명령을 사용하여 private이라는 그룹을 만듭니다.

    groupadd 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 구성 파일을 열고 개인 공유를 정의합니다.

    nano /etc/samba/smb.conf

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

    [Private]
    path = /samba/share/private
    valid users = @private     
    guest 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

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

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

    아래와 같이 비밀번호를 입력하라는 메시지가 표시됩니다.

    Password for //45.58.38.51/private:  *********
    

    암호를 입력하고 Enter 키를 눌러 Samba 공유를 마운트합니다.

    이제 아래와 같이 /opt 디렉토리에서 Samba 공유를 확인할 수 있습니다.

    ls /opt/

    산출:

    private1.txt  private2.txt
    

    Ubuntu Gnome에서 Samba 공유에 액세스

    Samba 공유에 액세스하려면 원격 시스템으로 이동하여 Gnome 파일 관리자를 열고 아래와 같이 서버에 연결을 클릭하십시오.

    Samba 서버 IP 주소를 제공하고 연결 버튼을 클릭합니다. 성공적으로 연결되면 다음 화면에 Samba 공유가 표시되어야 합니다.

    이제 개인 디렉터리를 클릭하고 사용자 이름과 비밀번호를 입력한 다음 연결 버튼을 클릭합니다. 다음 화면에 파일이 표시되어야 합니다.

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