Samba서버 Windows와 Linux/Unix 사이 자원을 공유하기 위한 시스템
Windows는 공유폴더를 설정하고 Linux에서 Samba 클라이언트로 Windows의 공유폴더 접근하는 방식이다.
Windows는 따로 Samba서버라고 인지하지 않는다.
Samba 서버 구현
Windows 클라이언트(Smaba 서버 역할)
-
Windows에서 공유할 폴더를 생성한다. (C:\sambaServer 라고 가정)
-
폴더의 속성 - 공유에서 Everyone으로 선택 하고 읽기/쓰기 권한으로 공유 되도록 설정한다.
-
파워쉘이나 명령 프롬프트로 net user <userid> <password> add 명령어로 유저와 비밀번호를 생성한다. (root, 1234라고 가정)
-
Windows의 IP주소를 확인한다. (서버IP라 가정)
리눅스 클라이언트
-
dnf -y install samba-client 명령어로 Smaba 패키지를 설치한다.
-
sbmclient -L 서버IP 명령어로 Windows에서 공유한 폴더가 보이는지 확인한다. (유저id, pw입력 필요.)
-
마운트할 공유 디렉터리를 생성하고 mount -t cifs //<서버IP>/<서버공유폴더> <마운트할 공유 디렉터리> 명령어로 마운트시킨다.
위의 과정들로 윈도즈와 리눅스간 디렉터리 공유가 된다.
반대로 Linux를 Smaba 서버로, Windows를 클라이언트로 구현해본다
Linux 서버
-
dnf -y install samba 명령어로 패키지를 설치한다.
-
Smaba 사용이 허가된 그룹을 만들고 공유할 디렉터리를 생성한다.
-
공유할 디렉터리를 만든다. (/share라 가정)
-
groupadd sambaGroup 명령어로 samba그룹을 만들고
-
chrpg sambaGroup /share 생성한 디렉터리를 그룹에 포함시킨다.
-
chmod 707 /share 디렉터리의 접근권한을 변경한다.
-
usermod -G sambaGroup <userID> 명령어로 사용자를 그룹에 포함시킨다. (smaba 에 사용할 사용자로 없다면 생성)
-
smbpasswd -a <userID> 명령어로 삼바 전용 비밀번호를 생성한다.
-
/etc/samba/smb.conf 파일을 아래와 같이 수정한다. (설정 파일에 대한 설명은 포스팅 젤 하단에 간략히 정리해놓았다.)
-
7행 workgroup = <Windows 클라이언트의 그룹명>
-
7행 아래에 추가 unox charset = UTF-8 map to guest = Bad User
-
제일 하단에 아래 내용 추가.
-
[Share]
-
path = /share
-
writable = yes
-
guest ok = no
-
create mode = 0777
-
directory mode = 0777
-
valid users = @sambaGroup
-
testparm 으로 위에서 수정한 설정파일에 이상이 없는지 확인한다.
-
systemctl restart/enable smb nmb 명령어로 서비스를 재시작, 상시가동 한다.
-
firewall-config, firewall-cmd 등으로 samba, samba-client 포트를 열고 방화벽을 재기동한다.
Windows 클라이언트
-
네트워크 드라이브 연결 에서 적당한 드라이브를 선택하고 폴더에 \\<server IP>\share 를 입력하고 아래 사항을 체크한 다음 완료한다.
-
Windows 보안창이 뜨면 서버에서 설정한 userID와 password를 입력한다.
위 과정들로 리눅스를 서버로 윈도즈와 samba 파일공유가 완료된다.
/etc/samba/smb.conf 파일의 상세 내용
[global] : 모든 자원 공유를 위한 설정
workgroup = Windows 작업 그룹 이름
server string = Windows 네트워크에 보이는 컴퓨터 설명 이름 (생략)
netbios name = Windows의 네트워크에 참가하는 컴퓨터 이름
hosts allow = 삼바 서버에 접속을 허용할 컴퓨터 IP
log file = 삼바 서버에 접속하는 컴퓨터 로그 파일
security = user
[공유 디렉터리명] : 공유하는 디렉터리에 대한 설정
comment = 공유하는 디렉터리 설명(생략)
path = 물리적인 디렉터리 경로
read only = yes는 읽기전용, no는 읽기/쓰기 가능
browseable = 공유 리스트를 공개할지 결정
guest ok = 다른 사용자도 사용이 가능하게 할지 결정