Samba는 Linux 및 UNIX 시스템에서 Windows 운영 체제와의 파일 및 프린터 공유를 가능하게 하는 오픈 소스 소프트웨어이다.
기본적으로 Samba는 SMB/CIFS 프로토콜을 구현하여 Windows 기반 시스템과 호환되도록 한다.
이를 통해 Windows 클라이언트는 Samba를 실행하는 Linux 또는 UNIX 서버의 파일 및 프린터에 액세스할 수 있다.

인증 및 권한 부여를 통해 파일 접근을 제어할 수 있으며, SMB3 프로토콜을 사용할 경우 데이터 암호화 기능도 지원한다.

Samba는 많은 리눅스 배포판에 기본적으로 포함되어 있고, 사용자가 필요에 따라 구성할 수 있다.
Samba는 네트워크에서 중요한 역할을 하는 유연하고 강력한 도구이며, 혼합 환경에서 Windows 및 Linux/UNIX 시스템 간의 통합을 용이하게 한다.

리눅스에서 윈도우 폴더 접근하고 사용하기

윈도우 Samba 클라이언트

우선 smbShare라는 이름의 폴더를 C드라이브 밑에 생성해 주었다. 그리고 해당 폴더를 공유 폴더로 만들어 주자. Everyone 사용자를 추가하고 사용자 권한 수준 설정을 [읽기/쓰기]를 선택해 공유를 클릭한다.

리눅스 Samba 서버

리눅스에서 접근을 허용하려면 리눅스의 사용자를 추가하고 비밀번호를 지정해야한다.

윈도우에서 파워쉘이나 명령 프롬프트를 관리자 모드로 실행한 후 다음 명령을 입력해 사용자를 추가한다.

net user root 1234 /add -> root 사용자를 만들고 암호를 1234로 지정

리눅스에서 Samba 클라이언트 패키지 설치

dnf -y install samba-client

윈도우에서 공유한 폴더 및 프린터가 보이는지 확인하자.

smbclient -L 윈도우 IP 주소

mkdir smbMount
mount -t cifs //118.34.238.136/smbShare /smbMount
Password for root@//118.34.238.136/smbShare:  ****(필자는 1234)로 지정

/smbMount 디렉터리를 사용한다는 것은 윈도우의 C\smbShare 폴더를 사용한다는 것과 같은 의미가 된다.
/smbMount 디렉터리에 파일을 몇 개 복사(혹은 생성)하고 윈도우 파일 탐색기에서 확인해도 잘 보일 것이다.
필자는 윈도우에서 test.txt 라는 텍스트 파일을 만들고 리눅스에서 확인했다.

리눅스 /smbMount 디렉토리에서 확인

[root@localhost ~]# ls /smbMount/
test.txt

공유가 잘 되었음을 확인할 수 있다.

윈도우 클라이언트에서 리눅스 폴더 사용

리눅스에서 삼바 패키지를 설치한다.

[root@localhost ~]# dnf -y install samba

디렉터리 공유 설정

Samba의 사용이 허가된 그룹을 만든 후 디렉터리는 /share라는 이름으로 지정한다.

필자가 설치한 리눅스의 기존 사용자인 centos를 sambaGroup에 포함시켰다.

[root@localhost ~]# mkdir /share
[root@localhost ~]# groupadd sambaGroup
[root@localhost ~]# chgrp sambaGroup /share
[root@localhost ~]# chmod 770 /share
[root@localhost ~]# usermod -G sambaGroup centos
[root@localhost ~]# smbpasswd -a centos
New SMB password:
Retype new SMB password:
Added user centos.

Samba의 설정파일을 수정한다.

vi /etc/samba/smb.conf
[global]
        workgroup = WORKGROUP
        unix charset = UTF-8	        -> 문자 인코딩
        map to guest = Bad User	        -> 인증 없이 접속 허용
[Share]
        path = /share		        -> 공유할 폴더
        writable = yes		        -> 쓰기 허용
        guest ok = no		        -> 게스트 거부
        create mode = 0777	        -> 파일 전체 접근 허용
        directory mode = 0777	        -> 폴더 전체 접근 허용
        valid users = @sambaGroup	-> sambaGroup 소속 사용자만 허용

필자는 testparm 명령으로 변경한 내용에 오류가 없는지 확인했다.

Samba 서버를 시작/상시 가동한다.

systemctl restartsmb nmb
systemctl enable smb nmb

firewall-config 명령을 입력해 방화벽 설정을 켠다.

그리고 설정:[영구적]을 선택하고 samba, samba-client 체크를 켜서 Samba 서버를 연결해준다.

윈도우

윈도우의 파일 탐색기를 열어서 [내 PC]를 마우스 우클릭 하고 [네트워크 드라이브 연결]을 선택한다.

[네트워크 드라이브 연결]이 나요면 적당한 드라이브를 선택한 후 [폴더]에 직접 \\192.168.111.100\share 를  입력하고 그 아래를 오두 체크하고 [마침]을 클릭한다.

필자가 이건 캡쳐를 안 했는데 [마침]을 누르면 [Window 보안]창이 뜨면서 네트워크 자격 증명을 입력하라고 할 것이다.

위에서 지정한 삼바 전용 비밀번호 1234를 입력하고 [확인]을 클릭한다.

파일 탐색기를 확인하면 Z: 드라이브가 연결되어 있다.

파일 몇 개를 복사하거나 만들자. 필자는 test2라는 텍스트 파일을 만들었다.

리눅스에서 /share 디렉토리를 확인해보니 test2.txt가 잘 만들어져 있음을 확인할 수 있다.

이로서 윈도우에서 리눅스의 폴더를 Samba 서버로 연결해 사용할 수 있게 되었다.

Samba 서버로 파일 공유 성공

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다