저는 대용량(수천 개의 파일) Magento 설치를 다른 서버로 전송하는 임무를 맡고 있습니다. Windows에 기본 제공되므로 파일을 내 컴퓨터에 다운로드한 다음 다시 FTP로 전송하면 됩니다.
그러나 이제는 권한이 모두 올바르지 않으며 단순히 각 파일에 대해 이를 수행할 수 없다는 것을 깨달았습니다.
파일 권한을 동기화/복사할 수 있는 방법이 있나요? 사용자/그룹을 동일하게 설정해야 하는지 잘 모르겠습니다. 보기에는 올바른 디지털 권한이 필요한 것 같습니다.
이들은 완전히 별개의 서버이며 파일/폴더는 동일합니다. Ubuntu 12.04는 "새" 서버의 운영 체제입니다.
답변1
Linux에서는 다음 명령을 사용하여 소유권과 권한(액세스 제어 목록은 포함하지만 SELinux 컨텍스트는 포함하지 않음)을 백업하고 복원할 수 있습니다.ACL 도구. 달리기getfacl -R
>권한.txt올바른 권한이 있는 컴퓨터의 최상위 디렉터리에 있습니다. 출력 파일을 대상 컴퓨터에 복사하고 실행합니다.setfacl --restore=permissions.txt
최상위 대상 디렉터리에 있습니다.
소유권과 권한을 복사해야 하는 경우 복구 부분을 루트로 수행해야 합니다.
답변2
를 사용하고 싶을 수도 있습니다 rsync
. 작동하게 하려면 다음 위치에 설치해야 합니다.둘 다(아직 설치되지 않은 경우) 그런 다음 (루트로) 실행하십시오.
rsync -avrHP root@source-host:/path/to/source-directory/ /path/to/destination
이는 다음을 가정합니다.
- 대상 호스트에서 명령을 실행합니다. 원본 호스트에서 실행하려면
root@source-host:
첫 번째 매개변수에서 해당 부분을 제거하고root@destination-host:
두 번째 매개변수에 매개변수를 추가하면 된다. 참고: rsync를 실행할 수 없습니다.둘원격 호스트; 한쪽 끝만 "원격" 끝이 될 수 있습니다. - SSH를 통해 루트로 로그인하는 것은 전적으로 가능합니다. 보안상의 이유로 이제는 그러한 액세스를 비활성화하는 것이 일반적인 관행입니다. 그러나 rsync가 실제로 권한을 복제하려면 양쪽 끝에서 루트로 실행되어야 합니다. 비활성화된 경우 확인
/etc/ssh/sshd_config
하고 찾아보십시오PermitRootLogin
. 로 설정된 경우no
로 전환한yes
후 다시 시작하세요sshd
. 파일을 복사한 후 다시 비활성화하는 것을 잊지 마세요! - 소스 호스트의 파일을 소유한 사용자가 대상 호스트에 존재합니다. 그렇지 않으면 일부 권한 비트가 잘못 복사될 수 있습니다.
하신다는 점 참고해주세요아니요복사된 파일을 먼저 삭제해야 합니다. rsync는 파일이 존재하지만 동기화 권한을 감지합니다. 일부 파일이 복사된 후 변경된 경우 rsync는 해당 내용도 동기화합니다.
답변3
루트로 실행 rsync -og
어쩌면 이것이 당신이 찾고 있는 것일 수도 있습니다.
맨페이지에서:
-o, --owner
This option causes rsync to set the owner of the destination file to be the same as the source file, but only if the receiving rsync is being run as the super-user (see also the --super and --fake-super options). Without this option, the owner of
new and/or transferred files are set to the invoking user on the receiving side.
The preservation of ownership will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).
-g, --group
This option causes rsync to set the group of the destination file to be the same as the source file. If the receiving program is not running as the super-user (or if --no-super was specified), only groups that the invoking user on the receiving side
is a member of will be preserved. Without this option, the group is set to the default group of the invoking user on the receiving side.
The preservation of group information will associate matching names by default, but may fall back to using the ID number in some circumstances (see also the --numeric-ids option for a full discussion).