Samba에서 Linux와 Windows 간의 파일 공유

Samba에서 파일 공유



Samba (삼바)를 사용하면 Linux 컴퓨터와 Windows 작업 그룹과 마찬가지로 파일 공유가 가능합니다.

동작 확인된 환경




우분투



OS
우분투 16.04

커널
4.15



Raspbian (Raspberry Pi 3B+)



OS
Raspbian Buster Lite

커널
4.19.97-v7+


Samba 서버 구축 절차



Sanba 설치


$ sudo apt-get install -y samba



설치 중에 "(요약) IP 할당 방법이 DHCP 인 경우 네트워크에있는 WINS 서버의 정보를 적용 할 수 있습니다. DHCP에서 WINS 설정을 사용하도록 smb.conf를 변경합니까?"라는 선택 화면 가 표시됩니다.
제 경우에는 머신을 취급하는 환경에서 WINS 서버를 운영하지 않기 때문에 No를 선택했습니다.

(특정 사용자만 액세스 권한을 부여하려는 경우) Samba 사용자 등록



게스트가 모든 사람에게 디렉토리에 대한 액세스를 허용하는 경우. 사용자 등록은 필요하지 않습니다.
Samba는 자신의 자격 증명을 기반으로 액세스 권한을 부여합니다.pdbedit 에 의해 Samba로 인증하기 위한 유저를 머신의 유저와는 별도로 새롭게 등록할 수 있다.
$ sudo pdbedit -a "username"

등록시, 패스워드의 설정도 요구되므로 패스워드를 설정합니다.
new password:
retype new password:

공유할 디렉토리 설정



여기서는/mnt/share를 공유 디렉토리로 가정합니다.
$ sudo mkdir /mnt/share
$ sudo chmod 0777 /mnt/share
shmod 명령은 파일 및 디렉토리의 액세스 권한을 변경하는 명령입니다.
액세스 권한은 읽기 (r), 쓰기 (w), 실행 (x)의 세 부분으로 설정됩니다.0777를 지정하면 모든 사용자에게 모든 액세스 권한이 부여됩니다.

Windows 작업 그룹 이름 확인



LAN의 Windows 시스템에 설정된 작업 그룹 이름이 필요합니다.
작업 그룹 이름 확인, 설정은コントロールパネル->システムとセキュリティ->システム->コンピュータ名、ドメインおよびワークグループの設定의 항목에서 확인할 수 있습니다.

/etc/samba/smb.conf 편집



다음 명령으로 smb.conf를 열고 편집합니다.
에디터는이 기사에서 Vim을 예로 사용합니다.
$ sudo vi /etc/samba/smb.conf

우선, 24행째 어떻게
dos charset = CP932
unix charset = UTF-8

를 추가합니다.

smb.conf
 21 
 22 #======================= Global Settings =======================
 23 
 24 [global]
 25 dos charset = CP932
 26 unix charset = UTF-8
 27 

그런 다음 31 행의 workgroup에 방금 조사한 Windows 컴퓨터의 WORKSTATION 이름을 씁니다.

smb.conf
 28 ## Browsing/Identification ###
 29
 30 # Change this to the workgroup/NT-domain name your Samba server will part of
 31    workgroup = <your work group name>
 32

38행 이후의 Networking 항목은, 보안의 관점에서 접속원의 IP 주소를 제한하고 싶을 때에 편집합니다.

smb.conf
 35 #### Networking ####
 34 
 35 # The specific set of interfaces / networks to bind to
 36 # This can be either the interface name or an IP address/netmask;
 37 # interface names are normally preferred
 38    interfaces = 127.0.0.0/8 eth0
 39
 40 # Only bind to the named interfaces and/or networks; you must use the
 41 # 'interfaces' option above to use this.
 42 # It is recommended that you enable this feature if your Samba machine is
 43 # not protected by a firewall or is a firewall itself.  However, this
 44 # option cannot handle dynamic or non-broadcast interfaces correctly.
 45     bind interfaces only = yes
 46     map to guest = Bad User
 47

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

smb.conf
239 [share]
240    path = /mnt/share
241    writable = yes
242    guest ok = yes
243    guest only = yes
244    create mode = 0777
245    directory mode = 0777

[share]는 공유 할 디렉토리 이름 (Windows에서 볼 수있는 이름)을 설정합니다.
예를 들어, 공유 디렉토리 이름을 DIR로 지정하려면 [DIR]이라고 가정합니다.
path는 공유 할 디렉토리의 경로를 입력합니다.

Samba 실행 테스트


testparm 명령을 사용하면 smb.conf에 오류가 있는지 구문 검사를 할 수 있습니다.
log 파일의 관계로 WARNING이 나올 가능성이 있습니다만,Loaded services file OK. 와 나오면 문제 없습니다.
$ testparm

Samba 실행



다음 명령을 실행합니다.
$ sudo systemctl restart smbd nmbd

시작시 자동으로 실행하고 싶은 경우.
$ sudo systemctl enable smbd nmbd

Windows에서 공유 파일에 액세스



탐색기에서 "네트워크 드라이브 할당"에서 액세스합니다.



"폴더"란에 "\\Samba 서버의 IP 주소\대상에 설정된 공유 디렉토리 이름"을 입력하십시오.

액세스 할 수 있으면 사용자의 인증이 필요하므로 액세스 대상 컴퓨터의 사용자 이름과 암호를 입력하고 Samba 사용자를 구성한 경우 Samba 서버의 사용자 이름과 암호를 입력하십시오.



액세스에 성공한 경우



네트워크 위치에 공유 디렉토리의 항목이 표시됩니다.

참고 기사



우분투에서 파일 서버를 세우기 (Samba)

전체 액세스 공유 폴더 만들기

raspberry pi : samba 설치

좋은 웹페이지 즐겨찾기