한 파일의 내용을 다른 파일로 복사하는 동안 권한이 거부되었습니다.

한 파일의 내용을 다른 파일로 복사하는 동안 권한이 거부되었습니다.

저는 sudo 사용자인 "papagolf"라는 사용자로 일하고 있습니다. 다음 명령을 사용하여 새 그룹 "hadoop"을 만들었습니다.

papagolf@Sierra:~$ sudo addgroup hadoop

"haduser"라는 사용자를 생성했습니다.

papagolf@Sierra:~$ sudo adduser --ingroup hadoop haduser

papagolf의 .ssh 디렉토리에 ssh 키를 생성하고 공개 키 파일을 이 새 디렉토리에 복사했습니다.

papagolf@Sierra:~$ cp hadoop_keys.pub /home/haduser/.ssh/

.ssh/authorized_keys에 새 파일을 생성했습니다.

papagolf@Sierra:~$ cd /home/haduser/.ssh/
papagolf@Sierra:/home/haduser/.ssh$ sudo touch authorized_keys

이제 .pub 파일의 내용을authorized_keys에 복사하고 싶습니다.하지만 권한이 거부되었다는 오류 메시지가 나타납니다.sudo 사용자인데도 왜 이런 일이 발생하는지 알고 싶습니다.

papagolf@Sierra:/home/haduser/.ssh$ sudo cat hadoop_keys.pub >> authorized_keys
bash: authorized_keys: Permission denied

이제 나는 이것을 시도했고 효과가있었습니다.

papagolf@Sierra:/home/haduser/.ssh$ sudo -i
root@Sierra:/home/haduser/.ssh# cat hadoop_keys.pub >> authorized_keys

차이점은 무엇입니까? 오류가 발생하는 이유는 무엇입니까?

답변1

Ipor Sircer가 언급한 질문 중에서 목표를 달성하는 방법을 찾을 수 있습니다.

간단한 설명만 추가하겠습니다. 스트림 리디렉션(>> 이 경우)은 sudo로 실행되는 프로세스가 아닌 쉘에 의해 수행되므로 쉘(papagolf의 쉘)에는 여전히 다른 사용자의 디렉토리에 쓸 수 있는 권한이 없습니다. 이것이 바로 사람들이 이 작업을 수행하기 위해 tee 또는 sed를 사용하는 이유입니다.

관련 정보