FREEDOM. FRIENDS. FEATURES. FIRST. 페도라 한국 사용자 모임

파일 공유 samba 서버 구성 - 네트워크 파일 공유 - 삼바

게시판 Tech/Tip 파일 공유 samba 서버 구성 - 네트워크 파일 공유 - 삼바

  • This topic has 0개 답변, 1명 참여, and was last updated 3 years, 8 months 전에 by 태랑. This post has been viewed 2384 times
  • #101692
    태랑
    키 마스터
      게시글303 댓글1086 총합1389
    @admin
     

    안녕하세요 운영자 태랑 입니다.

     

    리눅스 간 또는 리눅스 와 이기종간의 파일 공유 서비스인 samba  서버 구성을 확인 해보도록 하겠습니다.

     

    • 테스트 환경

    OS : Fedora 34

    공유 형태: 동일한 디렉토리를 다수의 유저가 사용

     

    1. 공유 디렉토리 생성

    먼저 공유 파일이 저장될 디렉토리를 생성 합니다.

    ~]$ sudo mkdir -p /home/share

    * 디렉토리는 예시이며 사용하고자 하는 디렉토리명, 위치를 사용하면 됩니다.

     

     

    2. 그룹 및 유저 생성

    그룹 및 유저를 생성 합니다.

    유저 생성시 포스팅에서는 로그인을 할 필요성이 없고 그렇기 때문에 home 디렉토리도 생성하지 않게 유저를 생성하였습니다.

    # 그룹 생성
    ~]$ sudo groupadd samba
    
    # test1 user 생성
    ~]$ sudo useradd -g samba -M -s /sbin/nologin test1
    
    # 확인
    ~]$ sudo getent group samba

    테스트를 위해서 test2, test3 유저도 동일하게 생성하였습니다

     

     

    3. Set Permissions

    생성한 디렉토리에 대한 소유권 및 퍼미션을 조정 합니다.

    ~]$ sudo chown -R root:samba /home/share
    ~]$ sudo chmod 770 /home/share
    ~]$ sudo ls -ld /home/share
    drwxrwx---. 1 root samba /home/share

     

    [참고] SELinux 활성화 환경에서 필요 작업

    # Add new security filesystem security context:
    ~]$ sudo semanage fcontext --add --type public_content_rw_t "/home/share(/.*)?"
    ~]$ sudo semanage fcontext --add --type samba_share_t /home/share
    
    # Verifiy new security filesystem security context:
    ~]$ sudo semanage fcontext --locallist --list
    
    ~]$ sudo setsebool -P samba_domain_controller on
    ~]$ sudo setsebool -P samba_enable_home_dirs on
    ~]$ sudo chcon -t samba_share_t /home/share
    ~]$ sudo restorecon -R /home/share
    ~]$ sudo setsebool -P samba_export_all_ro on
    ~]$ sudo setsebool -P samba_export_all_rw on

     

     

    4. samba 설치 및 설정

    4-1 samba 설치

    ~]$ sudo dnf -y install samba

     

    [참조] 호스트네임을 변경시 - 필수 아님

    # 현재 호스트 네임
    hostnamectl status
    
    # 만약 호스트 네임 변경을 하고자 한다면 아래와 같이 변경
    ~]$ hostnamectl set-hostname "simple-samba-server"

     

     

    4-2 smb.conf 설정

    먼저 파일을 백업 하고 빈 파일에 설정을 하도록 하겠습니다.

    -- 먼저 파일 백업
    ~]$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.ori
    
    -- 파일 초기화
    ~]$ sudo /bin/cp /dev/null /etc/samba/smb.conf
    
    -- 설정파일 수정
    ~]$ sudo vi /etc/samba/smb.conf

     

    • smb.conf 파일 내역

    [global]
            unix charset = UTF-8
            workgroup = WORKGROUP
            server string = Samba Server Version %v
            security = user
            passdb backend = tdbsam
    
    [Share]
            comment = Share Folder
            # specify shared directory
            path = /home/share
            # allow writing
            writable = yes
            read only = no
            public = yes
            # disallow guest user (nobody)
            guest ok = no
            # looks all as guest user
            guest only = no
    
            valid users = @samba
            force group = +samba
            write list = test1,test3
            read list = test2
            create mask = 0660
            directory mask = 0770

     

     

    5. 추가 설정

    5-1 smb 유저 생성

    smbpasswd 명령어를 이용하여 smb 유저를 추가 합니다.

    ~]$ sudo smbpasswd -a test1
    New SMB password:
    Retype new SMB password:
    Added user test1.

    테스트를 위해서 test2,test3 유저도 동일하게 생성하였음

     

    5-2 firewall 비활성화

    방화벽(firewall) 이 활성화가 되어있다면 아래와 같이 서비스를 추가하여 포트를 오픈 합니다.

    ~]$ sudo firewall-cmd --add-service=samba --permanent
    ~]$ sudo firewall-cmd --reload
    
    -- firewall 정책확인
    ~]$ sudo firewall-cmd --list-services

     

    5-3 samba 서비스 활성화 및 시작

    ~]$ sudo systemctl enable smb
    ~]$ sudo systemctl start smb
    
    ~]$ sudo systemctl status smb

     

     

    6. 접속 하기

    윈도우에서 접속이 되는지 확인을 진행 합니다.

     

    6-1 네트워크 드라이브 연결 시작

    윈도우 탐색기에서 컴퓨터 탭 -> 네트워크 드라이브 연결 을 선택 합니다.

     

     

    6-2 호스트 찾기

    드라이브 연결 설정 화면에서 위에서 설정한 리눅스 서버의 IP 주소를 입력 후 찾아보기 버튼을 선택 합니다.

     

    검색되는 호스트(PC) 를 클릭 합니다.

     

     

    6-3 자격증명 입력

    자격증명 화면에서는 위에서 생성한 smb 유저 계정 정보를 입력 합니다.

     

     

    6-4 디렉토리(폴더) 선택

    samba 에서 설정한 고유 디렉토리(폴더) 를 선택 합니다.

     

    처음화면에서 마침 버튼을 클릭하여 설정을 완료 합니다.

     

     

    7. 파일 생성 및 읽기

    접속이 되었다면 폴더 및 파일을 생성 그리고 파일을 열어서 기록 등이 되는지를 확인 합니다.

     

    smb.conf 에서 read list = test2  로 설정된 test2 유저로 접속을 해보겠습니다.

     

    로그인 후 파일을 열어보면, 접근 및 파일의 내용 확인이 가능 합니다.

     

    그러나 파일이나 디렉토리 생성을 시도 하면 아래와 같이 엑세스 거부가 발생되는 것을 확인 할 수 있습니다.

     

    추가적으로 생성한 test3 의 유저로 다시 들어와서 확인 해보면 test1 처럼 write list 에 설정되어 있기 때문에 파일 생성 및 파일의 수정 등을 할 수가 있습니다.

     

    여기까지 윈도우 와 다중 사용자로 파일을 공유 하는 기본 설정에 대해서 확인해보았습니다.

    추가적인 samba 에 대한 내용은 추가적으로 업데이트 하도록 하겠습니다.

    감사합니다.

     

    Ref link.
    fedoramagazine.org/sharing-samba [Link]
    docs.fedoraproject.org/samba [Link]

     

    오픈소스를 응원합니다 Blog https://hoing.io
    Senior Database Administrator(MySQL, Oracle)

    사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

  • 답변은 로그인 후 가능합니다.

지금 이 순간


와이어샤크(wireshark) 사용자 구성 및 사용
안녕하세요.^^
[tip - tech] 페도라에서 본딩 관련 설정과 사용
페도라 12에서 달라진점 발견한거 있나요 ?
내장하드 추가 관련해서 질문드립니다.
ScribeFile을 이용한 블로깅!
왜 이상하게 마우스가 화면오른쪽을 벗어날까여...
ffmpeg-2.5.4 버전 rpm 파일 입니다.
fedora 13 모든 메뉴에서 한글 입력이 안됩니다.
무서운 인베인님;;