sudo 사용자를 사용하여 복사해 보세요

sudo 사용자를 사용하여 복사해 보세요

/opt/example 폴더에 대한 쓰기 액세스 권한이 있는 "수퍼유저"가 있습니다. /opt에 대한 읽기 액세스 권한이 있는 "user"라는 일반 사용자가 있습니다. "user"에는 /home/user/example 디렉토리가 있습니다. "사용자"에게는 sudo 권한이 있습니다. 전체 예제 폴더를 "/home/user/example"에서 "/opt/example"로 복사하고 싶습니다. 기존 스레드에서 다음 옵션을 시도했지만 그 중 아무 것도 작동하지 않았습니다.

Linux에서 사용자의 파일을 다른 사용자에게 복사

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

관련 정보