마이크로소프트와 인텔에서 시스템이 다른 시스템의 디스크나 프린터 등의 자원을 공유할 수 있도록 SMB(Server Message Block)프로토콜을 개발
삼바는 SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제간의 자료 공유 및 하드웨어를 공유할 수 있도록 해준다.
- 디렉토리 및 파일 공유
- 프린터 공유
- CD-ROM 공유
- DVD-ROM 공유
- USB 공유
현재 SMB프로토콜은 유닉스와 윈도 환경을 동시에 지원하는 CIFS(Common Internet FIle System)로 확장
CIFS
- IETE (Internet Engineering Task Force)에 의해 인터넷 표준으로 제안되었다.
- TCP/IP 사용
- NetBIOS 프로토콜 지원
- LanManger 기능 제공
smbclient
smbclient [option] [호스트명]
윈도우 서버로 접근할 때 사용
| 옵션 | 설명 |
| -L | 접속하려는 삼바 서버의 공유 디렉토리 정보 출력 --list |
| -U | 삼바 서버에 접속할 때 사용자명을 입력 --user=사용자명[%패스워드] |
| -M | 지정한 호스트명에 메시지를 전송할 때 사용 명령을 입력하고 전송하려면 [CTRL] + [D]를 누르면 됨 --message NetBIOS name |
localhost의 공유된 목록을 확인
smbclient -L localhost
user라는 호스트에 administrator계정으로 접근하여 공유된 목록 확인
smbclient -L user -U administrator
패스워드가 있다면
smbclient -L user -U administrator%1234
smbclient 명령어를 통해 윈도우 공유 폴더 마운트하지 않고 접근하는 방법
smbclient '//PC명/공유폴더명' -l [윈도우 IP주소]
smbstatus
클라이언트와 연결된 상태 출력
testparm
testparm [파일 경로] [호스트명 ip주소]
삼바의 환경 설정 파일인 smb.conf 설정 여부 확인
ip주소가 192.168.5.13, 호스트명이 www인 삼바 서버의 환경 설정 파일 확인
testparm /etc/samba/smb.conf www 192.168.5.13
smbpasswd
smbpasswd [option] [사용자명]
삼바 사용자의 관련 정보를 변경하는 명령
-사용자 생성 및 삭제
-패스워드 변경
-활성 및 비활성화 등
| 옵션 | 설명 |
| -a | 삼바 사용자를 추가할 때 사용 삼바 사용자는 리눅스 시스템에 존재하는 계정이어야 함 |
| -x | 삼바 사용자를 제거할 때 |
| -d | 삼바 사용자를 일시적으로 비활성화 할 때 |
| -e | 삼바 사용자를 활성활 때 |
| -n | 패스워드 없이 로그인이 가능하도록 할 때 사용 smb.conf 파일에 다음을 추가로 설정해야 함 -> null password = yes |
환경 설정 파일 smb.conf
삼바 서버의 환경 설정 파일
삼바 서버를 제어하고 공유시킬 시스템 자원에 대한 다양한 설정을 할 수 있다.
/etc/samba
-Global Setting 영역
-Share Definitions 영역
# 으로 시작하는 행 - 주석
; 으로 시작하는 행 - 주석
[] 을 사용하는 행 - 섹션 정의, 하나의 섹션이 정의된 후, 그 다음 섹션이 정의될 때까지의 행들은 해당 섹션에 속함
[global] 삼바 서버의 전체적인 환경 설정을 담당하는 섹션
[homes] 각 사용자들이 자신의 홈 디텍로리로 접근할 때의 권한을 설정하는 섹션
[printers] 프린터 관련 권한을 설정하는 섹션
Global Setting
workgroup = MYGROUP
-윈도우의 작업 그룹에 해당하는 항목
-공유 그룹명 지정
server string = Samba Server
서버에 대한 설명
netbios name = MYSERVER
윈도우에서 이름으로 접속할 떄 관련 이름 지정
interfaces = lo eh0 192.168.12.2/24 192.168.13.2/24
네트워크 인터페이스별로 접근 제어를 할 때 설정
hosts allow = 127. 192.168.12. 192.168.13.
삼바 서버에 접속을 허용할 호스트를 지정하는데 사용
EXCEPT 키워드와 와일드 카드 문자도 사용 가능
예시
host allow = 192.168.1. 127.
192.168.1.0 네트워크 대역에 속한 모든 호스트들과 로컬 시스템(127.0.0.0 네트워크)에서 접속이 가능함
host allow = 192.168.1. EXCEPT 192.168.1.220 192.168.1.244
192.168.1.220 과 192.168.1.244를 제외한 192.168.1. 네트워크에 속한 모든 호스트들이 삼바 서버에 접속할 수 있음
공유 설정
[sdata]
comment = share directory
path = /sdata
public = yes
write list = @iss
윈도우에서 접근할 때 폴더 이름 sdata
설명은 share directory
공유 디렉토리 경로 /sdata
모든 사용자가 접근 가능
파일 생성 및 삭제는 iss 그룹에 속한 사용자들만 가능하도록
[www]
comment = Web Directory
path = /usr/local/apache/htdocs
valid users = user1 user2
writable = yes
윈도우에서 접근할 때 폴더 이름 www
설명은 Web Directory
공유 디렉토리 경로 /usr/local/apache/htdocs
접근 가능 사용자는 user1 user2
두 사용자 모두 파일 생성 및 삭제 권한 부여
[www]
comment = Web Directory
path = /usr/local/apache/htdocs
valid users = user1 user2
write list = user1
윈도우에서 접근할 때 폴더 이름 www
설명은 Web Directory
공유 디렉토리 경로 /usr/local/apache/htdocs
접근 가능 사용자는 user1 user2
파일 생성 및 삭제 권한은 user1 만 가능
2102

- [web]
- comment = HTML Directory
- path = /usr/local/apache/html
- valid users = ihduser kaituser
- writable = yes (4번과 5번은 순서 무관)
1701
다음은 SAMBA 서버 접속 클라이언트 접속 설정에 대한 내용이다. ( 괄호 ) 안에 알맞은내용을 넣으시오.
[root@ihd ~]# smbclient ( ① ) IHD
[root@ihd ~]# smbclient ( ② )
smb: >
■ 조건
- ➀: 호스트이름은 IHD이고 공유 디렉터리명을 확인하는 과정으로 관련 옵션을 적는다.
- ➁: 공유 디렉터리명이 ihd_share일 때 접근하는 인자값을 적는다.
1: -L
2: //ihd/ihd_share
2201

1. smbpasswd
2. -a
3. path = /usr/local/apache/htdocs
4. valid user = kaitman ihduser
5. write list = ihduser
2002

1. smbclient
2. -L
3. //192.168.5.13/data
4. testparm
2001

- workgroup = ihd
- server string = IHD File Server
- netbios name = IHD_Server
- hosts allow = 192.168.12. (192.168.12.0/255.255.255.0도 가능)
1901

1. netbios name = ihd_com
2. workgroup = IHD
3. server string = IHD server
4. hosts allow = 127. 192.168.5.
참고
https://jhnyang.tistory.com/277
https://minddoodle.tistory.com/20
https://starrykss.tistory.com/1866?category=726103
'리눅스' 카테고리의 다른 글
| [리눅스] 아파치(apache) 웹 설정, httpd.conf (0) | 2022.11.01 |
|---|---|
| [리눅스] sendmail (0) | 2022.10.30 |
| [리눅스] rsync 백업 (0) | 2022.10.30 |
| [리눅스] SELinux, getenforce, setenforce (0) | 2022.10.30 |
| [리눅스] logrotate 로그 파일 관리 (0) | 2022.10.30 |