한 목적에서 다른 목적으로 파일을 복사하는 방법은 무엇입니까?

한 목적에서 다른 목적으로 파일을 복사하는 방법은 무엇입니까?

나는 아주 소수의 개발자가 사용하는 웹 서버를 가지고 있습니다. 홈페이지를 website사용중입니다. 다른 사용자는 user1' user2잠깐만 기다려주세요. sudo 액세스 권한을 부여했습니다 user1. user2.. 액세스할 수 있습니다 website.

지금 내가 겪고 있는 문제는 website일부 스크립트가 직접 읽기를 허용하지 않기 때문에 사용자가 스크립트를 복사할 수 없다는 것입니다 users. sudo cp를 사용하려고 해도 디렉토리에 대한 쓰기 권한이 website없기 때문에 실패합니다.users

일부 보안 시즌으로 인해 파일 권한을 변경하고 싶지 않습니다. tar를 사용하여 이 작업을 수행할 수 있다는 것을 어딘가에서 보았지만 알아낼 수는 없었습니다.

누구든지 도와줄 수 있나요?

감사해요!

답변1

user1당신은 다음과 같은 것을 할 수 있습니다

sudo -u website cat ~website/somefile > ~user1/somefile

~user1/somefileshell()은 이를 실행하는 사용자에 의해 먼저 생성 user1되고 cat다음과 같이 실행됩니다.website

여러 파일에 대해 동일한 방법으로 tar(1)을 사용할 수 있습니다.

sudo -u website tar cf - ~website/foo ~website/bar | tar xf -

그의 디렉토리에서 실행하면 user1표준 출력에 tar 아카이브가 "생성"되고 website, 또 다른 tar(sudo가 없으므로 쉘을 실행하는 사용자와 동일한 사용자로 실행, 즉 user1)는 해당 더미 tar 파일을 현재 디렉토리( )에 쓸 수 있습니다 user1 .

고쳐 쓰다tar는 파일로 연결되는 하위 디렉터리를 생성하므로 -Ctar가 시작하기 전에 지정된 디렉터리로 이동하도록 지정하여 이 동작을 줄일 수 있습니다.

sudo -u website tar -C ~website -cf - foo bar | tar xf -

이런 방식으로 foo및 은 bar선행 하위 디렉터리 없이 현재 디렉터리에 생성됩니다(그러나 추가되면 에 있는 하위 디렉터리로 blah/baz생성됩니다 ).blahbaz

관련 정보