본문 바로가기
CodeLab/Linux

05. 리눅스(CentOS) 개발 놀이터 만들기 - Samba 설치

by 블리드카가 2017. 5. 23.
728x90


블로그가 이전 작업 중에 있습니다.아래의 링크를 클릭하시면 동일한 내용을 보실 수 있습니다. 


https://suwoni-codelab.com/linux/2017/05/23/Linux-CentOS-Samba/


제가 리눅스를 설치 하려는 목적이 개발을 위한 놀이터를 만들고 서버 운용도 경험하면서 집에서 사용할수 있는 파일 서버를 만들기 위함이었습니다.

집의 Windows 운영체제 와 Mac운영체제의 컴퓨터들과 원할하게 파일 공유를 하기 위해 Samba 설정에 도전하였습니다.


  1. Samba 패키지 설치

yum이라는 리눅스 패키지 매니저를 통해 Samba 를 설치하게 됩니다.


아래의 명령어는 samba로 시작하는 패키지들을 모두 설치하며 설치할지 묻는 여부를 자동으로 y 로 응답하는 옵션을 주었습니다.
yum install samba* -y




설치 패키지들을 확인해보겠습니다.
yum list installed | grep samba


설치된 samba  관련 패키지들 입니다.

  1. Samba 를 위한 디렉토리 생성

samba를 운용하기 위한 디렉토리를 만듭니다. 저는 /home/samba 라는 경로에 만들겠습니다.
mkdir /home/samba
해당 디렉토리의 권한을 모두 실행할 수 있는 권한을 변경해주고 ls -al 명령어로 확인합니다.
chmod 777 /home/samba


samba 디렉토리에 모든 권한이 주어진 것을 보실 수 있습니다.

그리고 앞서 '04. 리눅스(CentOS) 개발 놀이터 만들기 - 대용량 하드디스크 인식시키기’ 에서 마운트한 hdd1과 hdd2도 함께 Samba 로 운용할 생각입니다.

  1. Samba 유저 생성

    Samba를 사용할 전용 user 계정을 생성하고 패스워드를 지정합니다.
useradd smbuser
passwd smbuser



  samba에 계정을 추가해 줍니다. -a 옵션이 추가한다는 옵션입니다.
smbpasswd -a smbuser

    4. Samba 설정  

  samba 설정을 위해 /etc/samba/smb.conf 파일을 vi 에디터로 오픈합니다.
vi /etc/samba/smb.conf


[global] -  samba가 공통적으로 사용할 기본 설정 입니다.
[printers] - 네트워크 공유 프린트에 관련한 부분 입니다.

[global] 옵션
  •  workgroup : 작업 그룹 명
  • server string : 윈도우 네트워크에서 보여줄 samba서버에 대한 설명
  • hosts allow : samba 서버에 접속을 허용할 ip 
  • security : 인증 방식 지정 (user, share, server, domain)
                         user - 아이디 비번 을 입력하여 접속
                         share -  인증 없이 접속
                         server - 별도의 인증서버
                         domain - 윈도우NT 계열의 도메인 컨트롤러

좀더 상세한 설정에 대한 부분은 여기 링크를 참고 바랍니다.(http://zack-textcube.blogspot.kr/2010/04/smbconf.html)

기본적으로 작성되어 있는 것 이외에 보안을 위해 global 위치에 ‘hosts allow’ 을 추가 하겠습니다.
저의 경우는 내부 내트웍에 Samba 가 위치할 예정이고 내부 ip 172.30.1. 로 시작 하는 ip 만 접속 한다는 설정입니다.
hosts allow = 172.30.1.
그리고 저희 집 네트웍의 작업 그룹이 ‘WORKGROUP’ 으로 되어 있어 변경토록 하겠습니다.
workgroup = WORKGROUP
이제 개별적인 디렉토리를 Samba 에 할당하겠습니다. 
  • path : Samba 로 사용할 디렉토리 경로
  • writable :쓰기 가능
  • wirte list : 쓰기 허용할 계정 또는 유저 그룹
  • create mask : 생성될 파일들 권한 수준
  • diretory mask : 생성될 폴더 권한 수준
아래 내용을 맨아래에 작성하고 빠져 나옵니다.
[samba]
path = /home/samba
public = yes
writable = yes
write list = smbuser
create mask = 0777
directory mask = 0777


printers와  home  항목은 사용치 않아 삭제하였습니다.

이제  Samba 서비스를 부팅시 자동으로 실행되게 설정을 변경합니다.

systemctl enable smb
Samba를 시작 합니다.
systemctl start smb


방화벽 포트를 오픈 합니다. Samba 는 139 포트와 445 포트를 사용합니다.
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
firewall데몬을 리로드 해주어야 적용이 됩니다.
firewall-cmd --reload

마지막으로 selinux에서  보안 설정을 조정 합니다.
setsebool -P samba_enable_home_dirs on
chcon -t samba_share_t /home/samba

이제 다른 PC에서 확인해봅시다. 



수고하셨습니다 ㅎ 부족한점 있으면 지적 부탁 드립니다. 다음 번에는 MariaDB설치편을 작성하겠습니다~


728x90