SAMBA로 리눅스 클라이언트에서 윈도우 서버 접속하는 법
개요
삼바samba는 윈도우와 리눅스 간의 파일 공유 기능을 제공하는 소프트웨어로, 이 포스트에서는 리눅스 클라이언트 측에서 윈도우 서버로 접속해 공유된 파일에 접근하는 방법에 대해서 설명한다.
가이드
윈도우(서버) 1
Step 1. 삼바 기능 활성화
‘제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄기’에서 ‘SMB 1.0/CIFS 파일 공유 지원’을 찾아 활성화한다.
Step 2. 디렉터리 공유
접근을 허용할 디렉터리의 속성의 ‘공유’ 탭에서 ‘고급 공유-권한’을 클릭해 그룹 또는 사용자 이름에 Everyone을 추가하고 모든 권한을 허용한다. 이 작업을 하지 않으면 클라이언트 측에서 접속해서 파일을 읽는 것은 가능하지만 작성하거나 삭제하는 것은 불가능하다.
리눅스(클라이언트) 2
Step 1. 삼바 클라이언트 실행
sudo apt-get install -y samba-client cifs-utils
위 커맨드를 통해 삼바 클라이언트와 공용 인터넷 파일 시스템CIFS에 관한 유틸러티를 설치한다.
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_mode
와 file_mode
을 신경쓰지 않으면 기껏 공유 폴더를 마운트해도 굉장히 제한된 기능만 수행하게 되니 조심하도록 하자3.
위 스크린샷을 재현할 수 있는 커맨드의 예시는 비밀번호 xxxx
를 제외하고 다음과 같다.
sudo mount -t cifs -o username=rmsms,password=xxxx,dir_mode=0777,file_mode=0777,nounix //sickgpu/g g
실제로 윈도우 서버의 공유 폴더를 리눅스 클라이언트가 잘 사용하고 있음을 확인할 수 있다.
환경
- Windows11
- Linux Mint 21.2 Cinamon v5.8.4