커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 도움말
검색 : 사이트 WHOIS 웹서버 종류

최적화 / 튜닝 / 성능개선 (6, 글 1, 자료 3)
디스크 쿼터(quota) (3, 글 1, 자료 3)
디스크 관리 / 파일시스템 / mount (34, 글 13, 자료 12)
백업(backup) / 시스템 복구 (14, 글 6, 자료 11)
서버운영 (8, 글 2, 자료 9)
프린터 관리 / 프린팅 (7)
패키지 관리 / 패치 / rpm (10, 글 5, 자료 1)
부팅, boot / LILO / GRUB (10, 글 5, 자료 9)
서버 모니터링 (10, 글 5, 자료 2)
로그인 / 로그아웃 (1)
로그(log) / syslog (5, 글 3, 자료 3)
메모리, 스왑(swap), 램디스크(ramdisk) (3, 글 2)
사용자 관리(계정 관리) (1, 자료 1)

  rsync에서 특정 퍼미션으로 고정하기 작성일 : 2011/03/09 18:51
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 11958
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : rsync에서 특정 퍼미션으로 고정하기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2011.1.26(수)
    정리일 : 2011.3.7(월)


    1. rsync에서 특정 퍼미션으로 고정해도 좋을 때는?



    rsync는 크게 2가지 용도를 생각해볼 수 있다.

    1) 파일 백업 (퍼미션 유지 필요. 백업본으로 복구할 경우 퍼미션도 중요하다.)
    2) 파일 배포 (반드시 퍼미션을 유지하지 안해도 될 상황이 있다.)

    rsync를 이용해서 다수의 서버를 동기화한다고 하자. 그리고, 대상 서버는 웹서버들이다. (즉, '파일 배포' 용도)
    이 웹페이지 파일은 웹에서 읽을 수 있는 권한만 갖으면 된다. 쓰기 권한을 갖을 필요가 없다. (업로드가 이뤄지는 디렉토리는 쓰기 권한이 필요하겠지만)

    rsync는 원본 파일(또는 디렉토리) 퍼미션과 상관없이, 싱크할 때 특정한 퍼미션으로 고정시키는 옵션이 있다. 디렉토리는 555(dr-xr-xr-x) 또는 515(dr-x--xr-x)으로, 파일은 444(-r--r--r--)로 고정해볼 수 있을 것이다. 서비스 서버(대상 서버)의 파일은 보안에 조금 더 안전하게 존재하게 된다.

    (예)
    -------------    ---------------
    원본 서버          대상 서버
    192.168.1.123    192.168.1.110~120
    -------------    ---------------
    drwxr-xr-x    ->   dr-xr-xr-x
    drwxrwxr-x    ->   dr-xr-xr-x
    -rw-r--r--    ->   -r--r--r--
    -rw-rw-rw-    ->   -r--r--r--
    -------------    ---------------


    2. rsync에서 퍼미션 설정

    대상 서버의 rsyncd.conf 예이다.

    [ rsyncd.conf ] 예
     
    # server : 192.168.1.110
    #
    uid             = root
    gid             = root
    user chroot     = yes
    max connections   = 10
    hosts allow   = 192.168.1.123

    [coffeenix]
    path      = /home/coffeenix/public_html
    read only   = no
    incoming chmod  = Du=rx,Dgo=rx,Fugo=r
     


    'incoming chmod =' 파라미터는 들어오는 파일을 특정 퍼미션으로 고정한다.
    파라미터의 값은 각각 다음과 같은 의미를 갖는다.

    - D : 디렉토리
    - F : 파일
    - ugo : 각각 user(u), group(g), other(o)에 해당한다.

    위의 Du=rx,Dgo=rx,Fugo=r 는 Dugo=rx,Fugo=r처럼 통합해서 표시해도 좋다.
    Du=rx는 디렉토리 소유자는 r-x(읽기, 쓰기)로 설정한다는 의미이다.
    Fugo=r은 누구나(user, group, other) 파일을 읽을 수 있도록(r--)로 설정한다.
    위 설정대로하면 디렉토리는 r-xr-xr-x 가 되고, 파일은 r--r--r--가 된다.

     
    # rsync -avz --delete public_html/ 192.168.1.110::coffeenix/
     


    한가지 예를 더 들어보겠다. 디렉토리는 모든 유저가 r-x권한을, 파일은 실행 퍼미션만 제거한다.

     
    incoming chmod = Du=rx,Dgo=rx,Fugo-x
     


    (결과)
    -------------    ---------------
    원본 서버          대상 서버
    -------------    ---------------
    drwxr-xr-x    ->   dr-xr-xr-x
    -rw-r--r--    ->   -rw-r--r--
    -rwxr--r--    ->   -rw-r--r--
    -------------    ---------------

    'incoming chmod' 파라미터 예를 몇 개 더 들었으니 참고하기 바란다.

     
    incoming chmod = Du=rwx,Dgo=rx,Fugo=r
    incoming chmod = Du=rx,Dgo=rx,Fugo=r
    incoming chmod = Dug=rwx,Do-rwx,Fug=rw,Fo-rwx
     



    3. incoming chmod과 outgoing chmod 파라미터

    지금까지는 '들어오는 파일'에 대해 퍼미션을 고정했는데, 반대 입장으로 '나가는 파일'의 퍼미션을 고정할 수도 있다. 'outgoing chmod'파라미터로 설정하면 된다.

    1) incoming chmod (일반적인 방식)
      - 대상 서버 입장에서는 '들어오는 파일(받는 파일)'이 됨을 의미한다.
      - 대상 서버에 rsyncd.conf를 설정한다.
      - 이 때 원본 서버에서 rsync 명령을 실행한다.
      - rsync <옵션> <경로> <대상 서버IP>::DEST
    2) outgoing chmod
      - 원본 서버 입장에서는 '나가는 파일(보내는 파일)'이 된다.
      - 원본 서버에 rsyncd.conf를 설정한다.
      - 이 때 대상 서버에서 rsync 명령을 실행한다.
      - rsync <옵션> <원본 서버IP>::DEST <경로>

    192.168.1.110 서버에서 -> 192.168.1.111 서버로 '나가는 파일'에 대해 퍼미션을 고정시키는 예를 들어보자.

    1) 원본 서버인 192.168.1.110서버에 rsyncd.conf를 설정한다.

     
    # Server : 192.168.1.110

    outgoing chmod = Du=rwx,Dgo=rx,Fugo=rw
     


    2) 대상 서버인 1291.168.1.111서버에서 rsync 명령을 실행한다.

     
    # cd public_html/
    # rsync -avz --delete 192.168.1.110::coffeenix/ public_html/
     



    4. 관련글

    * rsync man page
      http://www.samba.org/ftp/rsync/rsyncd.conf.html

    * lsyncd로 서버간 파일을 실시간으로 동기화해보자. (2009.12, 글 좋은진호)
      http://coffeenix.net/board_view.php?bd_code=1696
    * Rsync를 이용한 데이터 미러링 구축  (2004.1, 글 굿스피드)
      http://coffeenix.net/board_view.php?bd_code=166
    * rsync의 write only 기능(쓰기만 가능한 설정) (2004.12, 글 좋은진호)
      http://coffeenix.net/board_view.php?bd_code=616
    * 자료를 다른 파티션으로 그대로 백업(rsync이용) (2003.10, 글 좋은진호)
      http://coffeenix.net/board_view.php?bd_code=88
    * rsync 활용(대역폭제한, 날짜별sync 등)  (2006.6, 글 좋은진호)
      http://coffeenix.net/board_view.php?bd_code=1418
      커피닉스 카페 최근 글
    [06/16] [질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
    [04/22] Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~