진행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/
'회사 > 과제' 카테고리의 다른 글
기본 서비스 포트 (0) | 2022.01.18 |
---|---|
DNS / Local DNS 구축 (0) | 2022.01.14 |
Subnetting / CIDR (0) | 2022.01.13 |
Apache SSL 인증서 (0) | 2022.01.12 |
Apache VirtualHost (0) | 2022.01.12 |