| rsync에서 특정 퍼미션으로 고정하기 | 작성일 : 2011/03/09 18:51 |
| 조회수 : 11959 |
|
제 목 : 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 ] 예
'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--가 된다.
한가지 예를 더 들어보겠다. 디렉토리는 모든 유저가 r-x권한을, 파일은 실행 퍼미션만 제거한다.
(결과) ------------- --------------- 원본 서버 대상 서버 ------------- --------------- drwxr-xr-x -> dr-xr-xr-x -rw-r--r-- -> -rw-r--r-- -rwxr--r-- -> -rw-r--r-- ------------- --------------- 'incoming chmod' 파라미터 예를 몇 개 더 들었으니 참고하기 바란다.
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를 설정한다.
2) 대상 서버인 1291.168.1.111서버에서 rsync 명령을 실행한다.
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 |
|||||||||||||||||||
|
|