H E E 2022. 1. 14. 14:44
728x90

 

진행OS

KT Cloud 사용

 

준비물

 1. 서버 2대 (서버 1: Server 역할 / 서버 2: Client 역할)

 


📌 SMB (Server Message Block) 프로토콜

 - SMB 프로토콜은 지정된 네트워크 내에서 폴더, 프린터 및 직렬 포트 등을 공유할 수 있는 Microsoft Windows 프로토콜이다. SMB 대신 CIFS (Common Internet File System)이라고도 한다.

 

 

📌 Samba (SMB)

 - 삼바(Samba, SMB)는 Windows 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해주는 소프트웨어이다.

 - SMB라는 서버 메시지 블록에서 유래한 말이다.


📌 Samba _ Server(서버1) 설정

 

1. 설치하기

yum install samba samba-client samba-common

 

 

2. 부팅 후에도 실행 되어있게 설정

# 부팅 후에도 smb가 실행되어 있게 설정
systemctl enable smb

# 부팅 후에도 nmb가 실행되어 있게 설정
systemctl enable nmb

 

 

3. smb / nmb 실행

# smb 실행
systemctl start smb

# nmb 실행
systemctl start nmb

 

 

4. /home/testsamba 디렉토리를 생성

# 디렉토리 명이 달라도 상관이 없습니다.
# 양식
mkdir [디렉토리 경로]/[만들 디렉토리]

# 예시
mkdir /home/testsamba

 

 

5. sambashare라는 새 그룹을 생성

# 그룹명이 달라도 상관이 없습니다.
# 양식
groupadd [그룹명]

# 예시
groupadd sambashare

 

 

6. /home/testsamba 디렉토리 그룹 소유권을 sambashare로 설정

# 본인이 생성한대로 맞춰서 수정 입력 하시면 됩니다
# 양식
chgrp [그룹명] [디렉토리 경로]

# 예시
chgrp sambashare /home/testsamba

 

 

7. jth라는 사용자 생성 ( 사용자 명을 다르게 해도 상관이 없습니다. )

# 양식
useradd -M -d [사용자의 홈 디렉토리] -s /usr/sbin/nologin -G [그룹명] [사용자명]

# 예시
useradd -M -d /home/testsamba/jth -s /usr/sbin/nologin -G sambashare jth
옵션 설명
-M  사용자의 홈 디렉토리를 작성하지 않습니다. 이 디렉토리를 수동으로 생성
-d /home/testsamba/jth  사용자의 홈 디렉토리를 /home/testsamba/jth로 설정
-s /usr/sbin/nologin  사용자에 대한 셸 액세스를 해제
-G sambashare  사용자를 sambashare 그룹에 추가

 

 

8. 사용자의 홈 디렉토리를 생성

# 파일 명이 달라도 상관 없습니다
# 상위 디렉토리는 아까 4번에서 만들었던 디렉토리 경로로 하시면 됩니다.

# 양식
mkdir [상위디렉토리경로]/[만들 디렉토리명]

# 예시
mkdir /home/testsamba/jth

 

 

9. 디렉토리 소유권을 user jth 및 group sambashare로 설정

# 양식
chown [사용자명]:[그룹명] [디렉토리경로]

# 예시
chown jth:sambashare /home/testsamba/jth

 

 

10. user jth가 해당 파일에 대한 읽기 및 쓰기를 할 수 있도록 설정

# 양식
chmod 2770 [디렉토리경로]

# 예시
chmod 2770 /home/testsamba/jth

 

 

11. 사용자 암호를 설정하여 jth 사용자 계정을 Samba DB에 추가

# 양식
smbpasswd -a [사용자명]

# 예시
smbpasswd -a jth

 

 

12. 암호 설정 후 아래 명령어를 입력하여 Samba 계정을 활성화

# 양식
smbpasswd -e [사용자명]

# 예시
smbpasswd -e jth

# 결과
Enabled user [사용자명]

 

📍 다른 사용자를 만들고 싶다면 사용자 jth를 만든 방법과 동일하게 진행

 

 

13. Samba 공유 구성

# vi 편집기를 이용해 파일 열기
vi /etc/samba/smb.conf

# 맨 아래에 해당 내용 추가
[사용자명]
        path = [디렉토리경로]
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = [사용자명]
        
# 예시
[jth]
        path = /home/testsamba/jth
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = jth

 

다음과 같은 의미

구문 설명
[jth]  로그인할 때 사용할 공유의 이름
path  공유에 대한 경로
browseable  사용 가능한 공유 목록에 공유를 나열할지 여부를 지정
read only  유효한 사용자 목록에 지정된 사용자가 이 공유에 쓸 수 있는지 여부를 나타냄
force create mode  이 공유에서 새로 만든 파일에 대한 권한을 설정
force directory mode  이 공유에서 새로 만든 디렉토리에 대한 권한을 설정
valid users  공유에 액세스 할 수 있는 사용자 및 그룹의 목록, 그룹에는 @ 기호가 접두사로 붙어있다.

 

14. 아래 명령어를 사용하여 samba 서비스를 다시시작

# smb 재시작
systemctl restart smb

# nmb 재시작
systemctl restart nmb

 


📌 Samba - 클라이언트(서버2) 설정

 

1. smbclient 설치

yum install samba-client

 

 

2. Samba 공유에 액세스하는 구문

# 양식
smbclient //[ip]/[사용자 홈 디렉토리명] -U [사용자명]

# 예시
smbclient //[내부ip]/jth -U jth

# 비밀번호 입력
Enter SAMBA\jth's password: [지정했던 암호를 입력]

 

 

3. Samba 공유를 마운트하기 위해 설치

yum install cifs-utils

 

 

4. 마운트 지점을 생성

# 디렉토리 경로가 달라도 상관이 없습니다

# -p 옵션 : mount 디렉토리를 생성하고
# 하위 디렉토리 sambamount 디렉토리까지 함께 생성
mkdir -p /home/mount/sambamount

 

 

5. 공유를 마운트

# 양식
mount -t cifs -o username=[유저이름] //[내부ip]/[사용자 홈 디렉토리명] [마운트지점경로]

# 예시
mount -t cifs -o username=jth //[내부ip]/jth /home/sambamount

# 비밀번호 입력
Password for jth@//[내부ip]/jth: [지정했던 암호를 입력]

 


📌 확인

 

 

1. Samba 서버 측에서 만든 사용자 홈 디렉토리 jth 에서 확인차 test 디렉토리를 만든다.

# 예시와 달라도 상관이 없다!!
# 양식
mkdir [자신이 만들었던 디렉토리경로]/[새로만들디렉토리명]

# 예시
mkdir /home/testsamba/jth/test

 

2. Samba 클라이언트 측에서 만든 마운트 디렉토리 sambamount 에서 조회한다.

# 당연히 본인이 만들었던 디렉토리로 확인해야 한다
# 양식
ls [마운트지점경로]

# 예시
ls /home/mount/sambamount/

 

 

728x90
반응형