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 설정
- 삼바 관련 패키지를 전부 설치
[root@Linux ~]# dnf install samba* ... Complete! |
- 서버에서 필요한 데몬 실행
[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주소 연결 등을 지원 |
- firewall과 SELinux 해제
[root@Linux ~]# systemctl stop firewalld [root@Linux ~]# setenforce 0 |
- 서버를 이용할 계정 생성
[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. |
- 공유할 디렉토리 생성 후 사용자 읽기쓰기가 가능하도록 권한부여
[root@Linux ~]# mkdir /samba [root@Linux ~]# chmod 777 /samba [root@Linux ~]# ls -ld /samba drwxrwxrwt. 2 root root 6 May 18 12:30 /samba |
- 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 #쓰기 전용 |
- 작성한 내용에 이상이 없는지 확인
[root@Linux ~]# testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. ... # 정상적으로 명령어가 작동하면 성공 |
- 삼바 사용자를 등록 후 데몬 재시작
[root@Linux ~]# smbpasswd -a henry New SMB password: Retype new SMB password: Added user henry. [root@Linux ~]# systemctl restart nmb smb |
2.2. 윈도우에서 클라이언트로 연결
- 파일탐색기에서 네트워크를 우클릭 후 ‘네트워크 드라이브 연결’ 선택
\\[서버의 IP]\[smb.conf에서 설정한 section] 입력하면 연결된다
3. 윈도우를 서버로 설정
- 윈도우 설정
계정 - 기타 사용자 - 다른 사용자 추가 - ‘이 사람의 로그인 정보를 가지고 있지 않습니다’ 선택
- 동의 후 ‘Microsoft 계정 없이 사용자 추가’ 선택
- 사용자 이름과 암호 입력하면 계정이 생성됨
- 파일탐색기에서 공유할 폴더 생성 후 공유권한 설정
- 계정을 추가한후 사용 권한을 올려준다
- 윈도우의 Windows Defender 종료
- 개인네트워크 설정만 종료 후 확인
3.1. 리눅스에서 윈도우로 접속
- 마운트를 하기 위해 cifs-utils 패키지 설치
[root@localhost ~]# dnf install cifs-utils ... Complete! |
- 디렉토리를 만들어 윈도우의 폴더와 마운트
[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 | 파일 생성할 때 허가권 지정 |