logo

SAMBA로 리눅스 클라이언트에서 윈도우 서버 접속하는 법 📂프로그래밍

SAMBA로 리눅스 클라이언트에서 윈도우 서버 접속하는 법

개요

삼바samba는 윈도우와 리눅스 간의 파일 공유 기능을 제공하는 소프트웨어로, 이 포스트에서는 리눅스 클라이언트 측에서 윈도우 서버로 접속해 공유된 파일에 접근하는 방법에 대해서 설명한다.

가이드

윈도우(서버) 1

Step 1. 삼바 기능 활성화

alt text

alt text

alt text

‘제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄기’에서 ‘SMB 1.0/CIFS 파일 공유 지원’을 찾아 활성화한다.


Step 2. 디렉터리 공유

alt text

alt text

alt text

접근을 허용할 디렉터리의 속성의 ‘공유’ 탭에서 ‘고급 공유-권한’을 클릭해 그룹 또는 사용자 이름에 Everyone을 추가하고 모든 권한을 허용한다. 이 작업을 하지 않으면 클라이언트 측에서 접속해서 파일을 읽는 것은 가능하지만 작성하거나 삭제하는 것은 불가능하다.

리눅스(클라이언트) 2

Step 1. 삼바 클라이언트 실행

sudo apt-get install -y samba-client cifs-utils

위 커맨드를 통해 삼바 클라이언트와 공용 인터넷 파일 시스템CIFS에 관한 유틸러티를 설치한다.

alt text

smbclient -L serverip -U username

serverip 위치에 접속할 서버의 주소를 넣고 username 에 서버에서의 계정 이름을 넣어 삼바 클라이언트를 실행한다. 예를 들어 ip 주소가 192.68.0.0이고 접속 권한을 가진 계정 이름이 amin이라면 커맨드는 smbclient -L 192.68.0.0 -username admin이 된다. 다음과 같은 실행 결과 메세지가 출력될 수 있지만 윈도우 서버 측 공유 폴더만 제대로 확인할 수 있다면 오류가 아니니 무시해도 좋다.

SMB1 disabled -- no workgroup available 

Step 2. 마운트

sudo mount -t cifs -o username=xxxx,password=xxxx,dir_mode=0777,file_mode=0777,nounix //serverip/serverd clientd

서버 serverip의 공유 폴더serverd 와 연결 시키고 싶은 리눅스 측의 디렉터리 clientd를 생성한 후 위의 커맨드를 통해 마운트한다.

  • -t cifs: 파일 시스템의 타입을 cifs로 지정한다
  • -o: 옵션을 지정한다.
    • username=xxxx: 윈도우 서버측 계정의 사용자 이름을 지정한다.
    • password=xxxx: 윈도우 서버측 계정의 사용자 암호를 지정한다.
    • dir_mode=0777: 디렉터리에 대한 권한을 읽기, 쓰기, 실행까지 허용한다.
    • file_mode=0777: 파일에 대한 권한을 읽기, 쓰기, 실행까지 허용한다.
    • nounix: 유닉스 체제가 아니라는 뜻이다. 이 경우엔 윈도우 서버를 의미한다.
    • //serverip/serverd: 서버 측 공유 폴더의 디렉터리다. 가장 앞이 //로 시작한다.
    • clientd: 클라이언트 측 공유 폴더의 디렉터리다.

여기서 특히 dir_modefile_mode을 신경쓰지 않으면 기껏 공유 폴더를 마운트해도 굉장히 제한된 기능만 수행하게 되니 조심하도록 하자3.

alt text

위 스크린샷을 재현할 수 있는 커맨드의 예시는 비밀번호 xxxx를 제외하고 다음과 같다.

sudo mount -t cifs -o username=rmsms,password=xxxx,dir_mode=0777,file_mode=0777,nounix //sickgpu/g g

실제로 윈도우 서버의 공유 폴더를 리눅스 클라이언트가 잘 사용하고 있음을 확인할 수 있다.

alt text

환경

  • Windows11
  • Linux Mint 21.2 Cinamon v5.8.4