sudo를 사용하지 않고 디렉터리(내용 포함)를 다른 사용자의 홈 디렉터리로 이동하시겠습니까?

sudo를 사용하지 않고 디렉터리(내용 포함)를 다른 사용자의 홈 디렉터리로 이동하시겠습니까?

다른 사용자의 홈 디렉터리로 이동하려는 디렉터리(및 그 내용을 재귀적으로)가 있습니다. 나는 이 사용자의 홈 디렉토리에 쓸 수 있는 권한이 없지만 그의 비밀번호를 알고 있습니다.

난 어떻게 하는지 알아복사사용할 디렉토리 scp -r(참조여기). 그러나 두 디렉터리는 모두 동일한 파일 시스템에 있으므로 디렉터리를 이동하려는 경우 원본 디렉터리를 복사한 후 삭제하는 것은 비효율적입니다. 어떤 방법이 있나요?이동하다(루트의 비밀번호 는 sudo모르지만 다른 사용자의 비밀번호는 알고 있습니다)?

관련된:바라보다여기싱글을 옮기는 방법문서. 그러나 이 게시물은 디렉토리에는 적용되지 않습니다.

답변1

소유권을 변경하지 않고 파일을 이동하려면 해당 파일이 포함된 디렉터리에 쓸 수만 있으면 됩니다. 따라서 /home/usera/dir1/dir2내용을 으로 이동 하려면 /home/userb/dir3다음부터 시작하세요 usera.

cd ~/dir1
find . -type d -print0 | xargs -0 chmod 777
su userb
cd ~/dir3
mv ~usera/dir1/dir2 .
exit

그런 다음 usera권한을 원래 상태(특히 dir1)로 복원합니다.

usera하지만 이동된 파일의 소유자는 계속 유지되므로 불편할 수 있습니다. 또 다른 옵션은 ;를 사용하여 비슷한 작업을 수행하여 cp -rl링크 팜을 만드는 것입니다. 이는 유사한 조건에서 작동하며 userb.

답변2

나는 Kupferdache와 반대로 할 것입니다:

집에 공개적으로 쓰기 가능한 디렉터리를 만들고 다른 계정으로 이동하여 파일을 내 디렉터리로 옮긴 다음 디렉터리 권한을 다시 변경합니다.

참고: 이것은 실제적인 움직임입니다. 그런 다음 필요에 따라 권한을 설정해야 합니다. 그래서 당신의 해결책은SCP아마도 안전할 것입니다(귀하 측의 안전하고 좋은 파일 권한)

답변3

이것이 귀하의 요구 사항을 충족합니까? rsync는 디렉터리, 파일 및 권한을 대상 디렉터리에 복사합니다.

rsync -avz /path/to/files target_server:/path_to_files

편집: 복사가 성공하면 플래그를 추가하여 원본 파일을 삭제할 수 있습니다.

답변4

응, 넌 그걸 원하지 않으니까 다른 걸 시도해 보자!

1- 다른 사용자로 명령을 실행하고 더 이상 비밀번호를 묻지 않습니다.

먼저, 명령을 실행하는 데 비밀번호가 필요하지 않도록 환경을 준비해야 합니다.

사용자 2를 준비합니다.

user2@machine:~$ cp /bin/bash .bash
user2@machine:~$ chmod a+s /home/user2/.bash

예, 이제 user1은 비밀번호 없이 user2로 로그인할 수 있습니다!

user1@machine:~$ /home/user2/.bash -p
bash-4.3$ whoami 
user2

이제 user1에서는 비밀번호 없이 이 작업을 수행할 수 있습니다.

user1@machine:~$ chmod -R 777 source ; /home/user2/.bash -pc "mv source dest"

그러나 다른 사용자가 /home/user2/.bash -p가 비밀번호 없이 user2로 로그인한다는 사실을 알게 되면 보안이 안전하지 않기 때문에 이는 매우 안전하지 않을 수 있습니다. 공개 그룹에 두 명의 사용자가 있으면 안전할 것이므로 chmod a+s 대신 chmod ug+s를 사용하여 환경을 준비하고 해당 그룹의 사용자만 다른 사용자와 같을 것입니다. 그냥 bash를 실행하세요! 아주 좋지 않나요?

2- 비밀번호가 필요한 작업을 수행합니다(더 안전함).

공개 그룹에 사용자가 없고 다른 사용자처럼 명령을 실행하려는 경우 다음과 같이 비밀번호 요청 버전을 사용하는 것을 고려할 수 있습니다.

user1@machine:~$ chmod -R 777 source ; su user2 -c "mv source dest"

이것이 도움이 됩니까?

관련 정보