올바른 권한을 유지하면서 한 사용자에서 다른 사용자로 디렉터리를 이동합니다.

올바른 권한을 유지하면서 한 사용자에서 다른 사용자로 디렉터리를 이동합니다.

사용자가 있다고 가정합니다: alicebob.

~/Documents이제 Bob은 Alice의 디렉터리를 자신의 홈 폴더로 이동하려고 합니다 .

권한을 업데이트하는 데 가장 적합한 워크플로는 무엇입니까(Alice에서 Bob으로)?

이는 (디렉터리 및 파일, 재귀적으로)에 대한 Alice의 모든 권한이 /home/alice/Documents/Bob의 (디렉터리 및 파일, 재귀적으로)에 추가되고 /home/bob/Documents/Alice의 권한은 여기에서 제거됨을 의미합니다 /home/bob/Documents.

답변1

파일 소유자 변경을 사용하면 chownalice의 권한이 bob으로 이전됩니다. 프로세스는 다음과 같습니다.

sudo mv ~bob/Documents ~bob/Documents.orig
sudo mv ~alice/Documents/ ~bob/Documents
sudo chown -PR bob ~bob/Documents

편집하다:

그룹도 재정의하려면 다음을 사용하십시오.

sudo chown -PR bob:bob ~bob/Documents

또는:

sudo chown -PR bob: ~bob/Documents

Bob의 기본 그룹을 사용합니다.

그러나 ~alice/Documents기본이 아닌 그룹 권한이 있는 경우 문제가 될 수 있습니다. 이 경우 다음과 같은 것을 사용하는 것이 좋습니다.

sudo find ~bob/Documents -group alice -exec chown -h bob: {} +

ACL이 사용 중인지 확인할 수도 있습니다.

답변2

밥으로서:

mv ~bob/Documents ~bob/Documents.orig
cp --remove-destination --no-preserve=ownership -r ~alice/Documents/ ~bob/
sudo rm -fr ~alice/Documents/

답변3

cp -avv /home/alice/Documents/ /home/bob/newDocuments/ && 
  chown -Rvv bob:bob /home/bob/newDocuments/

답변4

Bob에게 Alice의 홈 폴더를 읽을 수 있는 권한이 없으면 슈퍼유저로 작업을 수행해야 합니다(Bob에게 아직 해당 권한이 없는 경우). 개인적으로는 다음과 같은 방법을 사용합니다.

sudo rsync -a --progress /home/alice/Documents/ /home/bob/Documents/
sudo chown -Rv bob:bob_group /home/bob/Documents
sudo rm -rv /home/alice/Documents
  • rsync는 매우 다재다능합니다. 파일을 선택하여 기존 폴더를 건너뛰거나 동기화하거나 원격 호스트에서 복사할 수 있으며 더 많은 옵션을 사용할 수 있습니다. 이 예에서 "-a"는 아카이브를 나타냅니다. 이는 재귀 및 권한 보존을 위한 -r 및 -p와 같은 더 많은 rsync 옵션을 의미합니다. 또한 -o(소유자 유지) 및 -g(그룹 유지)도 포함되어 있어 필요에 따라 이 옵션을 조정할 수 있습니다. 따라서 이 명령이 끝나면 Bob의 홈 폴더에 Alice의 문서 폴더 복제본이 생성됩니다.

  • chown은 새 폴더의 소유자 및 소유자 그룹을 변경합니다.

  • rm은 원할 경우 원본 폴더를 삭제합니다.

관련 정보