삼바(SAMBA)란?
윈도우와 리눅스간의 자원 공유를 매우매우 쉽게 할 수 있도록 도와주는 서비스
SMB, CIFS 프로토콜을 이용하여 Windows와 Linux의 파일 및 하드웨어(CD/DVD-ROM,프린터,USB 등)를 공유할 수 있게 해 주는 서비스
- SMB(Server Message Block)
→ Microsoft와 Intel이 개발한 프로토콜
→ 서로 다른 시스템 상에 존재하는 디스크나 프린터와 같은 자원을 공유할 수 있도록 개발
→ TCP/IP 기반의 NetBIOS 프로토콜을 이용하기 때문에 NFS, NIS, lpd 같은 유닉스의 분산 인증 구조와 유사
- CIFS(Common Internet File System)
→ SMB 프로토콜의 확장 버전으로 인터넷의 표준 파일 규약 프로토콜
→ SMB 프로토콜과 달리 여러 유닉스 업체가 참여하여 결정된 표준이기 때문에 안정성 향상
⑵ Samba Service 특징
- Windows System과 Linux System간의 자원 공유
- 파일 공유뿐만 아니라 프린터 공유도 가능(Ex. Windows 사용자가 Linux 시스템에 연결된 프린터 사용 가능)
- SAMBA Service를 통한 NFS, FTP Service의 한계 극복 가능
→ NFS Service는 Linux와 Linux, Unix와 Unix 시스템 간에 파일 공유만 가능
→ FTP Service는 Windows와 Linux 시스템간의 파일 전송은 가능하지만 파일 전송 이외의 다른 서비스(Ex. Printer 공유)는 지원되지 않음. 또한 별도의 클라이언트 프로그램이 필요치 않음
설치(윈도우와 우분투간의 통신)
1. samba 설치
$ sudo apt-get install samba # ubuntu 계열
$ sudo yum install samba # redhat 계열
2. SAMBA 계정 만들기
$ smbpasswd -a [사용자명]
3. 실행
sudo service smbd start
sudo service nmbd start
3. 윈도우 파일 시스템에서 하이라이트한 주소로 접속 (\\192.168.200.37)
4. 와 접속 성공!
EC2의 Ubuntu에서 SAMBA 설치해보기(AMAZON LINUX와 UBUNTU 간의 통신)
<Ubuntu에서>
1. samba 설치
$ sudo apt-get install samba # ubuntu 계열
$ sudo yum install samba # redhat 계열
2. SAMBA 계정 만들기
$ smbpasswd -a [사용자명]
!!주의!! SAMBA 계정 만들때 Ubuntu 계정으로 만들어야 한다! 안그러면 계정이 안만들어짐!!
https://error-storage.tistory.com/28
3. 실행
sudo service smbd start
sudo service nmbd start
<Amazon Linux에서>
4. smbclient 설치
sudo yum install samba-client cifs-utils
5. mount 하기
!! mount 할 공간의 부모 디렉터리에서 해야된다!!
sudo mount -t cifs //10.10.10.x/ubuntu /home/ec2-user/smb_dir -o username=ubuntu,password=비밀번호
cifs를 이용하여 파일 시스템을 마운트한다.
이때, 10.10.10.x/ubuntu의 공간을 /home/ec2-user/smb_dir에 mount한다
즉, ubuntu 홈 디렉터리 공간을 /home/ec2-user/smb_dir에서도 접근 가능하다는 뜻이다.
이때 root에서 mount 했기 때문에 smb_dir의 소유자는 root가 된다. 따라서 amazon linux에서는 읽기만 가능하다
만약 소유자와 그룹소유자를 강제하고 싶다면 다음과 같이 작성하면 된다
sudo mount -t cifs //10.10.10.152/ubuntu /home/ec2-user/smb_dir -o username=ubuntu,password=비번,uid=1000,gid=1000,forceuid,forcegid
그러면 그냥 소유자도 공유공간에서 쓰기작업을 할 수 있다
/etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
cf)
삼바는 같은 호스트에서 파일 공유에 사용
=> 같은 호스트는 같은 네트워크
=> 같은 네트워크 안에서는 가능
따라서 ec2를 만들때 같은 서브넷에서 만들어지도록 했으므로 같은 네트워크
윈도우에서 ec2의 서버에 samba 이용하려 할때 다른 네트워크이므로 안됨
마찬가지로 local의 우분투에서 윈도우로 samba로 접근 하려고 한다면 얘는 같은 네트워크이므로 가능
참고