/opt/example 폴더에 대한 쓰기 액세스 권한이 있는 "수퍼유저"가 있습니다. /opt에 대한 읽기 액세스 권한이 있는 "user"라는 일반 사용자가 있습니다. "user"에는 /home/user/example 디렉토리가 있습니다. "사용자"에게는 sudo 권한이 있습니다. 전체 예제 폴더를 "/home/user/example"에서 "/opt/example"로 복사하고 싶습니다. 기존 스레드에서 다음 옵션을 시도했지만 그 중 아무 것도 작동하지 않았습니다.
ssh [email protected] 'sudo tar -C /home/example/ -czf - .' | tar -C /opt/example/ -xzf -
scp -r /home/example /opt/example/
sudo chown SuperUser /home/example
sudo -u SuperUser < /home/example sh -c 'cat > /opt/example'
cat ~/home/example | sudo -u SuperUser tee ~/opt/example >/dev/null
나는 여기에 뭔가 빠졌다고 생각합니다. 누군가 나를 고칠 수 있습니까?
답변1
루트 계정은 복사하는 동안 파일의 소유권을 유지하며 모든 파일을 읽고 대상 디렉터리에 쓸 수도 있습니다.
sudo cp -a /home/user/example /opt/
대상이 /opt/example
이미 존재하는 경우 사용할 수 있습니다.
sudo cp -a /home/user/example/. /opt/example/
당신의 시도는 완전히 정확하지 않습니다. 왜냐하면 ...
ssh
원격 컴퓨터에 연결하는 경우scp
원격 시스템으로 또는 원격 시스템에서 복사하는 경우sudo chown
대상 디렉터리의 소유권을 변경했지만 아무것도 복사하지 않았습니다.sudo ... cat
여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다.cat | sudo
비슷하게
답변2
나는 당신이 그것을 시도하는 것이 좋습니다
sudo cp -p -R /home/user/example /opt/example