ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] SAMBA / wins-lux 공유 폴더 연결 / 에러발생
    서버/리눅스 2017. 4. 14. 21:45

    SAMBA

    리눅스와 윈도우즈 간의 사용 가능 ( 공유폴더 )


    목차


    구성

    서버 : Windows

    클라이언트 : Linux


    서버 구성 ( Windows )

              

     추가




    확인


    권한 : 읽기/쓰기

     윈도우키 > 고급 공유 

     맨아래 > 

    암호 보호 

    공유 끄기




    클라이언트 구성 ( Linux )

    #1. 패키지 설치

    samba-client.x86_64

    cifs-utils.x86_64

    #>yum install -y samba-client.x86_64

    #>yum install -y cifs-utils.x86_64

    #>yum update -y

    : 일단 yum을 업그레이드 해보자


    윈도우에서 cmd > ipconfig 

     이더넷 어댑터 로컬영역 > IPv4 주소를 본다.



    Windows에서 따온 ip주소를 입력한다.

    #>smbclient -L <server_ip>

    #>smbclient -L 


    #결과


    공유 폴더 연결( 마운트 )

    서버의 폴더와 리눅스안의 빈 디렉터리와 연결( 마운트 ) 시켜 접근한다.

    >> 파티션과 비슷하다.

    #>mount -t cifs <server_path> <mount_point>

    option : -t를 사용해 cifs 프로토콜을 입력 ( 네트워크를 위한 samba 파일 규약 프로토콜 )


    >> server path는 컴퓨터 검색창에서 내 ip를 입력하면 공유 폴더로 접근이 된다.

    여기서 공유된 폴더를 찾아서 path를 복사한다.

    저는 \\192.168.3.176\linux 이네요 ( 인코딩 방식에 따라 \로 표시된다 ) 

     


    또한 테스트를 위해 윈도우 폴더에 file.txt를 만듭니다.


    *소스코드

    #>mkdir /samba

    #>mount -t cifs \\\\192.168.3.176\\linux /samba


    마운트할 directory를 만들어준다.

    \ : escape seqence 이므로 2배로 작성한다. ( 싱글쿼터를 사용해도 괜찮다 )


    #실행결과

    *소스코드

    #>df -h



    #읽기 쓰기



    바꿔서 테스트

    서버 : Linux

    클라이언트 : Windows


    Linux 서버 만들기

    #패키지 설치

    samba.x86_64

    #>yum install -y samba.x86_64

    but : 현재 ( 2017.4.17 ) 기준 4.4.4_version이다 ( #> rpm -qa | grep samba )

    www.samba.org 에서 소스코드로 업그레이드가 가능하다.


    #Samba 사용자 설정

    삼바로 접속할 계정은 리눅스pw, 삼바용pw 2개를 가지게 된다.

    #>useradd samba

    #>passwd samba

    : samba

    #>smbpasswd -a samba 

    : samba

    smbpasswd <option> <user_name>

    -a : 추가

    -x : 삭제

    samba pw는 linux pw와 달라도 가능하다.


    #공유폴더 만들기

    #>mkdir /samba

    #>chmod 777 /samba

    공유 폴더를 만들고 권한을 추가해준다.


    #samba 설정 설명서

    /etc/samba/smb.conf.example


    #설정

    #>cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

    #>vi /etc/samba/smb.conf

    :%d

    : 먼저 백업 본을 하나 만들고 설정을 한다.

    %d로 전체 삭제 한다.


    share모드 간단한 설정

    [global]

    workgroup = WORKGROUP

    server string = Samba Server Version %v 

    security =  user

    map to guest = Bad Password


    [public]

    path = /samba

    public = yes

    writable = yes

    guest ok =yes


    [global]

    workgroup = WORKGROUP

    server string = Samba Server Version %v 

    security =  user

    log file = /var/log/samba/log.%m

    max log size = 50

    hosts allow = 100.100.100.1

    hosts deny = 100.100.100


    [public]

    path = /samba

    public = yes

    writable = yes

    read only = no

    browseable = yes

    valid users = samba user01 user02


    [homes]

    comment - Home Directories

    browseable = no



    :wq

    [global] : samba 전반적인 설정이 global 단락에 있다.

    workgroup 과 secutiry 만 있으면 동작이 가능


    [public] : 제공할 디렉터리

    path랑 public만 있어도 읽기전용으로 동작 가능


    [homes] : 로그인한 사용자의 홈 디렉터리

    기본으로 사용자의 홈디렉터리 ( 2개가 보여짐 )

    comment만 있어도 동작가능


    %v : version

    %m : netBios


    [global]

    workgroup = ( 컴퓨터 > 속성 에서 확인 )


    server string = [ comment ] : 그냥 string 설명이다.

    security =    user    : 사용자 명과 패스워드 확인 후 접속 ( 틀리면 접속 불가 )

    share  : 사용자명과 패스워드 없이 접속한다 ( ghest )

    server : 인증서버로 인증 후 접속 ( 인증에 관련된 서버를 따로 둔다. )

    samba_ver2 에서는 사용하지않다고 samba_ver4에서는 지원하지 않는 옵션이 되었다.

    #share (사용자명과 패스워드 없이 접속)

           map to guest = <bad_user>

          Bad Passwd : 암호가 틀릴시 guest로 동작인데 ( windows가 계정을 물어본다면 아무거나 입력.)

    이 옵션을 사용하면 public에 있는 valid user 옵션을 지워야 원하는 동작을 수행할 수 있다.


    log file = 로그 경로를 지정한다.

    max log size = 로그파일의 사이즈를 지정한다 ( 0인 경우 무한 )

    hosts allow = 100.100.100.10 100.100.100.20 .. ip로 허용된 ip만 접근시킨다.

         100.100.100.     (100.100.100.1~100.100.100.254)   네트워크 대역대로 가능

    이 네트워크는 windows cmd > ipconfig로 확인이 가능하다.

    hosts deny = 100.100.100. 특정 ip / 네트워크 대역대를 차단한다.



    [public]

    path = 제공할 파일, 디렉터리 path

    public = yes : 대괄호 [ ~ ] 안에 들어있는 이름으로 공유폴더가 표시

    read only = yes ( 읽기전용으로 설정 기본값 )

    writable = yes ( yes : 쓰기 설정 기본값 (no) )

    read only , writable 둘중 하나의 옵션만 사용하면 된다.

    browseable = 목록 표시 ( 기본값 yes )

    valid user = 사용자 지정 하기

    guest ok = 게스트의 출입을 허가한다.


    [homes]

    comment = 설명

    browseable =[homes]를 안보이게한다 : 로그인한 사용자의 홈디렉터리만 보이게 된다.


    :wq


    #방화벽 추가

    #>firewall-cmd --permanent --zone=public --add-service=samba

    firewall-cmd --reload

    samba에 대한 방화벽을 해제한다.


    #실행

    #>systemctl restart smb


    #Client 접속

    linux ip 확인

    en~ ( 뒤에는 다를 수 있음 ) : inet 부분이 ip주소


    window + R

    <server_IP> 입력


    만들어 놓은 계정으로 로그인



    #확인

    접속한 사용자 목록 (서버)

    #>smbstatus


    접속 기록 (클라이언트)

    cmd > net use ( 접속 기록을 저장해 다음 공유폴더 사용시 id, pw를 안쳐도 된다.)

     하지만 지운다.

    cmd > net use \delete *

    [y/n] : y



    Error 수정

    1. selinux 설정

    #>vi /etc/selinux

    disabled로 변경


    2. firewall - inactive ( 방화벽 설정이 귀찮으면 테스트할때만 꺼둔다 )

    #>systemctl stop firewall

    #>systemctl disable firewalld

    3. SAMBA 오타

    #>vi /etc/samba/smb.conf

    오타수정


    4. Windows 반복 에러 

    윈도우 재부팅



    '서버 > 리눅스' 카테고리의 다른 글

    [리눅스] ACL(Access Control List )  (0) 2017.04.19
    [리눅스] NFS  (0) 2017.04.18
    [리눅스] 기본적인 서버 구성  (0) 2017.04.14
    [리눅스] LVM stripe, mirror  (0) 2017.04.13
    [리눅스] LVM ( 가상화기법 )  (0) 2017.04.12

    댓글

Designed by Tistory.