주어진 사용자, 바람직하게 대상 디렉토리에있는 모든 파일의 소유권을 다른 지정된 사용자로 변경할 수있는 Linux 명령을 찾고 있습니다.
내 꿈의 명령은 다음과 같습니다.
chuser -R --olduser tom --newuser jerry
또는
chuser -R --olduser 1066 --newuser 1492
이것은 내 시나리오입니다 ... 사용자 및 그룹 정보가 보존 된 백업 파일 (.tgz)이 있습니다. Apache 및 MySQL을 실행하는 웹 서버에서 가져 왔습니다. 백업의 파일은 시스템 전체에 있으며 여러 다른 사용자와 여러 시스템 유형 계정의 파일을 포함하므로 새 서버에서 복원 할 때 설정이 손실되지 않는 것이 중요합니다. 문제는 파일을 복원하는 컴퓨터의 사용자가 백업 파일의 사용자와 일치하지 않기 때문입니다. 예를 들어 두 시스템 모두 MySQL 사용자를 가지고 있지만 서로 다른 사용자 ID를 가지고 있으며 다른 사용자에 속하는 두 시스템에 존재하는 여러 사용자 ID가 있습니다. 즉, 새 컴퓨터의 사용자를 기존 컴퓨터의 사용자와 동기화 할 수있는 방법이 없습니다.
이런 명령을 사용하여 모든 사용자 파일을 찾을 수 있습니다 ...
find /decompressed-backup-dir -uid 1050
또는
find /decompressed-backup-dir -user tom
내가 생각하는 것처럼 단일 명령으로 원하는 것을 수행 할 수있는 방법이 없다면 소유권 변경을 처리하기 위해 find 명령의 결과를 다른 명령으로 파이프하는 방법이 있습니까?
PHP 스크립트 로이 작업을 수행 할 수 있지만 백업에 4GB 및 수만 개의 파일이 있으므로 PHP 또는 Perl을 사용하고 싶지 않지만 그것을 처리 할 수있는 쉘 스크립트에 만족할 것입니다.
-uid
내가 대신 사용-user