CentOS 8에 Samba 서버를 설치하는 방법
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- 센트OS 8
- 센트OS 5.6
이 페이지에서
- 전제 조건
- Samba 서버 설치
- Samba로 공개 공유 만들기
- 공용 공유 디렉토리 생성
- Samba 구성
- SELinux 및 방화벽 구성\n
- 사용자 및 그룹 만들기
- 개인 공유 디렉토리 생성
- Samba 구성
- 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 --reloadUbuntu 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 서버를 성공적으로 설치하고 구성했습니다.