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

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

내 홈 디렉터리의 파일을 다른 사용자의 디렉터리로 복사하려고 합니다. 다른 사용자에게 sudo 액세스 권한이 있고 비밀번호는 없습니다. 나는 다음과 같은 일을하려고합니다 :

sudo secondUser cp /home/firstUser/file /home/secondUser 

이를 수행할 수 있는 방법이 있습니까? 또한 루트 액세스 권한이 없으며 두 번째 사용자의 비밀번호도 모릅니다.

답변1

편집: 예추가 설정 없이 이 작업을 수행하는 빠르고 쉬운 방법입니다.

cat ~firstUser/file | sudo -u secondUser tee ~secondUser/file >/dev/null

모든 파일이 전송됩니다.콘텐츠정확히. 원본 파일과 일치하는 파일 권한 및/또는 타임스탬프가 중요하다면 chmod및 를 각각 사용하여 수정 해야 합니다 touch.


원래 답변:

여기서 문제는 다음과 같습니다.

  • secondUser홈 디렉토리에 접근할 수 없습니다.
  • 액세스할 수 없는 secondUser홈 디렉터리입니다 .

따라서 cp명령을 직접 실행하든 로 실행하든 관계없이 secondUser파일 복사를 수행할 수 없습니다 .

액세스 권한 이 없다고 말하면 root확실한 대답은 누구나 읽을 수 있는 중간 위치를 통해 파일을 복사하고 /tmp파일의 권한을 누구나 읽을 수 있도록 변경하는 것입니다. 그러나 파일 전송 중에 서버의 모든 사용자가 파일을 읽을 수 있으므로 파일의 데이터가 민감한 경우에는 이 작업을 수행하지 않을 수 있습니다. 그렇다면아니요민감한 데이터인 경우 다음을 수행하세요.

cp file /tmp/
chmod a+r /tmp/file
sudo -u secondUser cp /tmp/file ~secondUser
rm /tmp/file

더 나은 옵션은 귀하와 만 포함된 그룹을 만들고 해당 그룹 에 속한 파일의 복사본을 소유하는 것 secondUser입니다 . 이렇게 하면 파일을 만들 필요가 없습니다.chgrp/tmp세계- 읽을 수 있지만 그룹( 사용 chmod g+r /tmp/file)만 읽을 수 있습니다. 하지만 groupadd그 자체로 루트 접근이 필요하기 때문에 정리가 쉽지 않습니다. 상황에 따라(자주 공유/공동 작업을 시도하는 경우 적용될 수 있음 secondUser) 나중에 사용할 수 있도록 관리자에게 이 그룹을 설정하도록 요청하는 것이 좋습니다.

답변2

문제는 다음과 같습니다.

sudo -u secondUser cp /home/firstUser/file /home/secondUser 

일단 가 되면 secondUser액세스할 수 없습니다 /home/firstUser/file.

secondUser해결책은 파일을 다른 이름으로 열고 해당 파일 설명자를 firstUser상속 해야 한다는 것입니다.secondUser

안전 조치로 , 및 를 제외한 모든 파일 설명자는 닫힙니다 sudo. 그러나 이 경우에는 이것이 필요한 전부입니다(더 많은 파일 설명자의 상속을 명시적으로 허용할 수 있음).012

sudo -u secondUser < /home/firstUser/file sh -c 'cat > /home/secondUser/file' 

tar메타데이터 저장이 가능한 보다 일반적인 솔루션을 위해 다음 과 같은 출력을 cpio프로세스 끝에 넣을 수 있습니다 .sudostdin

 tar c file1 file2 file3 | sudo -u secondUser tar x -C ~secondUser

답변3

sudo의 -u 플래그를 사용하면 명령을 실행해야 하는 사용자 계정을 지정할 수 있지만 다른 사용자의 비밀번호를 알아야 합니다.

sudo -u secondUser cp file /home/secondUser/file

다른 사용자의 비밀번호를 모르면 이 작업을 수행하지 못할 수도 있습니다. 이는 시스템의 일반적인 권한 분리 설계의 일부이며 이상적으로는 우회가 불가능합니다.

또한 파일을 두 사용자 계정 모두가 액세스할 수 있는 위치(예: /tmp)로 이동하고 두 번째 사용자가 해당 파일을 자신의 홈 디렉터리로 이동하도록 할 수도 있습니다.

답변4

파일을 /tmp에 복사하고 su두 번째 사용자에 대한 권한을 777로 변경합니다. /tmp에서 파일을 복사합니다.
명령이 sudo secondUser잘못되었습니다.

관련 정보