파일 권한 복사 200

파일 권한 복사 200

--w-------권한이 200인 일부 파일이 포함된 디렉터리 트리가 포함된 파일 특성을 유지하면서 디렉터리를 반복적으로 복사하고 싶습니다 .

복사 명령은 cp -ar sourcedirectory targetdirectory이러한 파일을 건너뛰며 각 파일은 다음과 같습니다.

cp: cannot open `sourcedirectory/foo/somefile.bar' for reading: Permission denied`

내 질문: 권한을 변경하지 않고 복사 명령이 이러한 파일을 건너뛰는 것을 방지하려면 어떻게 해야 합니까?

cp복사 명령 이외의 유틸리티를 사용해야 한다고 생각한다면 그 이유를 설명해 주세요.

답변1

파일을 복사하려면 파일을 읽을 수 있도록 설정해야 합니다. 이는 도구 선택과 관련이 없습니다. 파일을 읽을 수 있는 권한이 없기 때문에 모든 프로그램이 파일을 열어 읽을 수 없습니다.

만약에ACL활성화되어 있고(ext2/ext3/ext4의 경우 마운트 옵션이 필요함 acl) 복사에 관심이 없다면 복사를 수행하는 사용자가 파일을 읽을 수 있도록 허용하는 ACL을 추가하십시오.

setfacl -R -m u:username:rX sourcedirectory

그렇지 않으면 파일 권한을 미리 변경하고 나중에 복원하거나(양쪽 모두) 루트로 복사해야 합니다.

답변2

이 페이지가능한 한 많은 메타데이터를 유지하면서 데이터를 복사하는 다양한 방법을 제공합니다. 각각 시도해 볼 수 있으며,루트 사용자로:

  • cp -av /source /dest# 사용하지 마세요 -r. 동작을 예측하기 어렵고 -a포함되어 있습니다.-R
  • cd /source; tar -cf- . | tar -xvpf- -C /dest
  • cd /source; find . -depth -print0 | cpio -pdmv -0 /dest
  • rsync -av --delete --hard-links /source/ /dest

/Rsync는 인수에 s가 뒤에 오는 경우 약간 까다롭습니다. 매뉴얼 페이지에 설명된 대로 두 방법 모두 디렉토리를 다음 /source/foo위치에 복사합니다 /dest/foo.

  • rsync ... /source/foo /dest
  • rsync ... /source/foo/ /dest/foo

이들 중 어느 것도 작동하지 않을 수 있습니다. 시험해 보는 동안 최고의 잠재 고객을 찾으십시오.

답변3

내가 아는 한, 아래 단계에 따라 권한을 그대로 유지하고 모든 파일을 복사할 수 있습니다.

$ cd <sourcedirectory>

$ tar -cvf <sourcedirectory.tar> .

$ cp <sourcedirectory.tar> <destinationdirectory>

$ tar -xvf <sourcedirectory.tar>

관련 정보