본문 바로가기

리눅스-기초명령어/공유디렉토리

SAMBA

SAMBA

마이크로소프트와 인텔에서 개발한 SMB(Server Message Block) 네트워크 프로토콜을 이용해 윈도우와 유닉스계열의 운영체제나 다른 시스템 간의 자원을 공유할 수 있도록 만든 프로그램이다.

삼바는 윈도우 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에서 접속하여 디렉터리 및 파일 공유, 프린터, CD-ROM, DVD-ROM, USB 공유하여 사용할 수 있도록 해준다.

삼바는 SMB 프로토콜을 이용해서 작동하기 때문에 해당 프로토콜이 설치된 시스템만 사용할 수 있다.

현재 SMB 프로토콜은 유닉스와 윈도 환경을 동시에 지원하는 CIFS(Common Internet File System)로 확장되었다. 




1. smbclient

리눅스 및 유닉스에서 사용하는 삼바 클라이언트 명령으로 윈도우 서버로  접근할때 사용된다.

 

사용법

smbclient [option] [호스트]  호스트 이름은 ip로도 가능하다

 

옵션

옵션 설명
-L 접속 하려는 samba 서버의 공유 디렉토리 정보 출력
-U smaba 서버에 접속할 때 사용자명을 입력








2. 리눅스를 서버로 설정

2.1. Linux 설정

  1. 삼바 관련 패키지를 전부 설치
[root@Linux ~]# dnf install samba*
...
Complete!

 

  1. 서버에서 필요한 데몬 실행
[root@Linux ~]# systemctl enable --now nmb smb
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
# smb(Server Message Block) : Linux와 Windows의 파일 공유를 위한 데몬
# nmb(Netbios Name Server) : Window 사용자 이름과 ip주소 연결 등을 지원

 

  1. firewall과 SELinux 해제
[root@Linux ~]# systemctl stop firewalld
[root@Linux ~]# setenforce 0

 

  1. 서버를 이용할 계정 생성
[root@Linux ~]# useradd henry
[root@Linux ~]# passwd henry
Changing password for user henry.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

 

  1. 공유할 디렉토리 생성 후 사용자 읽기쓰기가 가능하도록 권한부여
[root@Linux ~]# mkdir /samba
[root@Linux ~]# chmod 777 /samba
[root@Linux ~]# ls -ld /samba
drwxrwxrwt. 2 root root 6 May 18 12:30 /samba

 

  1. smb.conf파일에 공유 설정
[root@Linux ~]# vi /etc/samba/smb.conf
# vi 편집창 

##
...
[global]  #삼바 서버의 전체적인 환경 설정을 담당하는 섹션
workgroup = SAMBA  
         ...


[homes] # 각 사용자들이 자신의 홈 디렉터리로 접근할때의 권한을 설정
comment = Home Directories
...

[printers] #프린터 관련 권한을 설정하는 섹션
comment = All Printers
...

[print$] #프린터 드라이버 관련 섹션
comment = Printer Drivers
...
##
# 최하단에 다음 내용 작성

[share] # Window와 공유할 섹션 이름
        comment = Samba Shared Directory  #간단한 공유 폴더 설명
        path = /samba                                 #공유 디렉토리 경로
        public = Yes                                     #공유
        writable = Yes                                  #쓰기 전용

 

  1. 작성한 내용에 이상이 없는지 확인
[root@Linux ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
...
# 정상적으로 명령어가 작동하면 성공

 

  1. 삼바 사용자를 등록 후 데몬 재시작
[root@Linux ~]# smbpasswd -a henry
New SMB password:
Retype new SMB password:
Added user henry.
[root@Linux ~]# systemctl restart nmb smb

 

2.2. 윈도우에서 클라이언트로 연결

  1. 파일탐색기에서 네트워크를 우클릭 후 ‘네트워크 드라이브 연결’ 선택

 

\\[서버의 IP]\[smb.conf에서 설정한 section] 입력하면 연결된다



3. 윈도우를 서버로 설정

  1.  윈도우 설정

계정 - 기타 사용자 - 다른 사용자 추가 - ‘이 사람의 로그인 정보를 가지고 있지 않습니다’ 선택

 

  1. 동의 후 ‘Microsoft 계정 없이 사용자 추가’ 선택

 

 

  1. 사용자 이름과 암호 입력하면 계정이 생성됨

 

  1. 파일탐색기에서 공유할 폴더 생성 후 공유권한 설정

 

  1. 계정을 추가한후 사용 권한을 올려준다

 

 

  1. 윈도우의 Windows Defender 종료

  1. 개인네트워크 설정만 종료 후 확인

3.1. 리눅스에서 윈도우로 접속

 

  1. 마운트를 하기 위해 cifs-utils 패키지 설치
[root@localhost ~]# dnf install cifs-utils
...
Complete!

 

  1. 디렉토리를 만들어 윈도우의 폴더와 마운트
[root@Linux /]# mkdir /samba2
[root@Linux /]# mount -t cifs -o user=henry //192.168.20.22/samba2 /samba2 # 서버(윈도우)의 IP
Password for henry@//192.168.20.22/samba2:
[root@Linux /]# cd /samba2
[root@Linux samba2]# ls
[root@Linux samba2]# touch Hi



3.2. samba 영구 마운트 하기

[root@localhost /]# vi /etc/fstab
--------------------------------------------------------------------------------
//192.168.20.22/samba2 /samba2 cifs _netdev 0 0
---------------------------------------------------------------------------------------

fstab에서 defaults 값

_netdev

 네트워크를 사용할 수 있게 된 후에만 파일 시스템을 마운트하도록 지정하는 데 사용되는 옵션

4. [share]섹션에  주요 항목

 

항목목 설명
comment 간단한 설명을 설정한다
path 공유 디렉토리의 경로 설정
read only 읽기 전용
writable, write ok 쓰기 가능
write list 공유 디렉토리에 접근 및 쓰기 권한을 행사할 수 있는 사용자를 지정한다그룹인 경우 그룹명 앞에@사용
valid users 공유 디렉토리를 이용할 수 있는 사용자 지정
public, guest ok 다른 사용자들이 이용할 수 있도록 설정
browseable, browsable 공유 디렉토리의 리스트를 보여줄 때 설정
printable 공유 디렉토리에 스풀 파일 지정
create mask, create mode 파일 생성할 때 허가권 지정

 

'리눅스-기초명령어 > 공유디렉토리' 카테고리의 다른 글

NFS  (0) 2023.09.01
iSCIS  (0) 2023.09.01