리눅스에서 백업은 보통 tar을 이용하여 백업합니다. (리눅스에서의 파일압축은 이전 글 리눅스에서의 파일압축 (tar/gzip) 을 참고하세요) 보통 백업과 복구시에는 아래와 같은 옵션들을 이용합니다.
각 옵션들은 아래와 같습니다.
즉, 진행하면서 작업중인 파일들을 표시하면서 퍼미션을 포함하여 gzip을 이용하여 압축 혹은 해제하게 되는데, 서버의 OS를 재설치한뒤 복원하는 경우나 다른 서버로의 복원을 할 때 이 퍼미션 때문에 문제가 발생합니다. 압축한 파일들의 소유자들이 복원하는 서버의 소유자들과 일치하지 않을 수 있습니다. 예를 들면 압축된 파일의 소유자 uid가 500이었는데 복원하는 서버에는 500번 uid가 없다거나 하는 경우죠.
위 그림처럼 tar로 새로운 서버에 압축을 풀은 후 압축한 파일의 소유자가 압축을 풀은 서버에 존재하지 않는다면, 계정이 표시되지 않고 uid가 그대로 표시되게 됩니다. 이 경우 복원하는 서버에서 원래의 서버와 동일하게 계정들을 맞춰주는 방법도 있겠습니다만, 소유자를 변경해주는 chown 명령을 이용해서 해결 할 수도 있습니다.
보통 소유자를 변경시에는 아래와 같은 커맨드로 변경합니다.
예를 들어, chown www-data:www-data post-* 를 입력해보겠습니다.
uid로 표시되던 파일들이 아이디로 표시되고 있습니다. 그러면 남은 문제는 모든 파일이 소유자와 그룹이 다 똑같지 않다는 것이죠. 예를 들어 500번 uid로 되어있는 파일들은 megawave 계정으로 변경해야 하고 600번 uid로 되어있는 파일들은 www-data 계정으로 변경해야 한다거나죠. 이 문제를 해결하기 위해서 chown명령에서는 --from 옵션을 제공하고 있습니다.
chown --from 500:500 megawave:megawave [대상] 으로써 소유자와 그룹이 500:500으로 된 대상들만 특정 소유자,그룹으로 변경할 수 있습니다. 대상이 디렉토리일 경우 -R 옵션을 붙여주므로써 통채로 변경이 가능합니다.
chown --from 500:500 megawave:megawave [폴더] -R
chown --from 600:600 www-data:www-data [폴더] -R
이런식으로 한꺼번에 변경할 수 있습니다.