엔지니어 은성의 성장록

[Samba] Virtual Box CentOS 7.8 - Samba 설치 및 세팅 본문

서버/리눅스

[Samba] Virtual Box CentOS 7.8 - Samba 설치 및 세팅

엔지니어 은성 2021. 10. 14. 17:27

▶ 환경

VM : virtual box 

OS : cent OS 7.8

와 host PC window 연결 

 

▶ 세팅

(1) 사용자

  • sadmin : 모든 공유에 대한 읽기, 및 쓰기 액세스 권한을 가진 관리 사용자
  • ensungkim : 개인 파일 공유를 가진 일반 사용자 

(2) 공유

  • users : 이 공유는 모든 사용자에 의해 읽기/쓰기가 가능하다.
  • ensungkim : 이 공유는 ensungkim과 sadmin에 의해 읽기/쓰기가 가능하다.  

▶ 사전 준비 : sudo 권한으로 로그인 

1. Samba 설치 
# sudo yum install samba samba-client

 

2. Samba 서비스 시작, 시스템 부팅 시 자동시작으로 세팅 
# sudo systemctl start smb.service
# sudo systemctl start nmb.service

# sudo systemctl enable smb.service
# sudo systemctl enable nmb.service

smbd 서비스가 파일 공유와 프린트 서비스를 제공하고 TCP port 139,445번을 듣습니다.

nmbd 서비스는 NetBIOS over IP naming services를 client에게 제공하고, UDP port 137번을 듣습니다.

 

3. 방화벽 설정 

Samba 설치 후 방화벽 설정 firewalld is not running이 출력된다면 systemctl start firewalld 입력

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --zone=public --add-service=samba

 

4. Samba 사용자 디렉터리 구조 설정

일반적인 홈디렉터리 대신 유지보수와 효율을 따져 Samba 디렉터리와 데이터는 /samaba 디렉터리로 지정

 

1. 삼바 디렉토리 생성

2. 삼바 유저 그룹 생성 (이후 삼바 유저가 그룹에 추가될 것임)

3. 삼바 디렉터리에 삼바 유저 그룹 권한을 줌

# sudo mkdir /samba

# sudo groupadd sambashare

# sudo chgrp sambashare /samba

 

5. Samba 사용자 생성 

user name : ensungkim

# sudo useradd -M -d /samba/ensungkim -s /usr/sbin/nologin -G sambashare ensungkim

옵션 의미 

-M : 사용자의 홈 디렉터리를 생성하지 않음 

-d /samba/ensungkim 사용자의 홈 디렉터리를 /samba/ensungkim으로 설정

-s /usr/sbin/nologin 다른 사용자가 쉘에 접근하는 것을 거부

-G 사용자를 samba group에 추가 

 

 

6. Samaba user의 home 디렉터리 생성

소유권을 ensungkim과 sambashare에 주기

# sudo mkdir /samba/ensungkim
# sudo chown ensungkim:sambashare /samba/ensungkim

7. 허가권 지정 ,sambashare 그룹의 멤버들만 write/read 할 수 있도록 설정
# sudo chmod 2770 /samba/users
8. 패스워드 지정
# sudo smbpasswd -a ensungkim
# sudo smbpasswd -e ensungkim
9. 관리자 생성, 관리자 패스워드 지정
# sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

# sudo smbpasswd -a sadmin
# sudo smbpasswd -e sadmin
10. Users share 디렉토리 생성, 소유권 지정
# sudo mkdir /samba/users
# sudo chown sadmin:sambashare /samba/users
# sudo chmod 2770 /samba/users
11. samba share configuration 설정

Samba configuration 파일을 열어 다음과 같이 작성

[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin

[josh]
    path = /samba/josh
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = josh @sadmin

사진 설명, 옵션 의미

  • [users] , [ensungkim] : 로그인할 때 사용하는 이름
  • path : 공유 경로 
  • browseable  : no라고 함으로써, 다른 user는 공유를 볼 수가 없다.
  • force create mode : 이 공유에 새롭게 생성되는 파일의 권한을 지정 
  • force directory mode : 새롭게 생성되는 디렉터리의 권한 지정
  • valid users : 공유 접속이 허용되는 사용자, 그룹의 리스트 그룹은 @심벌로 고정된다.
12. Samba service 재시작 
# samba systemctl restart smb.service
# samba systemctl restart nmb.service
13. Linux  - Samba Share 연결 (Connection)

command line으로 리눅스 사용자들은 삼바 공유에 접근할 수 있습니다.

smbclient : 커맨드 라인으로 삼바에 접근을 허용할 수 있게 하는 툴

대부분의 리눅스에 기본적으로 설치돼있지 않으므로 패키지 매니저를 통해 설치가 필요함

# sudo yum install samba-client
14. IP주소로 Samba server에 ensungkim 이름으로 연결
# smbclient //IP주소/ensungkim -U ensungkim

결과 화면

15 Samba share에 mounting

(1) 리눅스에 Samba share에 마운트 하기 위해서는 cifs-utils 패키지를 설치해야 합니다.

# sudo yum install cifs-utils

(2) mount point 생성

# sudo mkdir /mnt/smbmount

(3) ip주소로 Samba Server에 마운트 

//양식
# sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

//예시
#sudo mount -t cifs -o username=ensungkim //10.0.2.15/ensungkim /mnt/smbmount

 

결과 화면 

16. Samba Share와 Windows 연결

STEP 3 

(1) 실행창에서 \\리눅스IP입력 ex) \\10.0.0.101

(2) username , 패스워드 입력 위에서 생성한 이름과 비번 입력 

(3) 테스트

window

 

linux centOS

Comments