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

블로그이전(http://cionman.tistory.com/)으로 자료를 옮겨 옵니다.

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

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

1. Samba 패키지 설치

  • yum이라는 리눅스 패키지 매니저를 통해 Samba 를 설치하게 됩니다.
  • 아래의 명령어는 samba로 시작하는 패키지들을 모두 설치하며 설치할지 묻는 여부를 자동으로 y 로 응답하는 옵션을 주었습니다.
     $ yum install samba* -y
    

    5-1

  • 설치 패키지들을 확인해보겠습니다.
      $ yum list installed | grep samba
    
  • 설치된 samba 관련 패키지들 입니다. 5-2

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

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

    5-3

3. Samba 유저 생성

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

    5-4

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

4. Samba 설정

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

    5-5

  • 옵션 내용
    • [global] - samba가 공통적으로 사용할 기본 설정 입니다.
      • workgroup : 작업 그룹 명
      • server string : 윈도우 네트워크에서 보여줄 samba서버에 대한 설명
      • hosts allow : samba 서버에 접속을 허용할 ip
      • security : 인증 방식 지정 (user, share, server, domain)
        • user - 아이디 비번 을 입력하여 접속
        • share - 인증 없이 접속
        • server - 별도의 인증서버
        • domain - 윈도우NT 계열의 도메인 컨트롤러
    • [printers] - 네트워크 공유 프린트에 관련한 부분 입니다.
  • 좀더 상세한 설정에 대한 부분은 여기 링크를 참고 바랍니다.(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
      

      5-6

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

  • 이제 Samba 서비스를 부팅시 자동으로 실행되게 설정을 변경합니다.
    $ systemctl enable smb
    
  • Samba를 시작합니다.
    $ systemctl start smb
    

    5-7

  • 방화벽 포트를 오픈 합니다. 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에서 확인해봅시다.

5-8

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