여기 문서에 대한 임시 파일을 만들 수 없습니다 : 권한이 거부되었습니다 복제본으로 표시되었습니다 . 하지만이 오류에

[참고 : 이 비슷한 Q 는 동일한 bash 오류 메시지와 관련이 있습니다. 이 다른 Q 의 복제본으로 표시되었습니다 . 하지만이 오류에 대한 소스가 매우 다르기 때문에 아래 질문에 대답하겠습니다.]

이 이전 작업 bash 스크립트 줄

while ... do ... done <<< "$foo"

어느 날이 오류 메시지가 생성되기 시작했습니다.

여기 문서에 대한 임시 파일을 만들 수 없습니다 : 권한이 거부되었습니다



답변

umask 777here 문자열 앞에 추가했습니다 . umask를 제거한 후 오류가 사라졌습니다. 교훈 : 여기에 문자열 ( <<<)에 대해 임시 파일이 작성되었으며 여기는 여기 문서 ( <<) 와 관련이 있으며 이들을 작동하려면 적절한 umask 세트가 있어야합니다.


답변

필자의 경우 /tmp디렉토리 기본 권한을 변경했습니다 (실수로 0777로 변경했다고 생각합니다).

해결책은 기본 /tmp권한 (1777은 8 진수 (1 = 스티커 비트, 7 = R + W + X)) 으로 되 돌리는 것 입니다.

간단히 말해서 sudo chmod -R 1777 /tmp문제를 해결해야합니다.


답변

이 문제에 대한 개인적인 경험은 umask@ eliptical-view와 같이 이진 표기법 이었습니다 . 나는 그 글을 썼다 :

umask 0644 

내가 만든 파일에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.

내가 변경 한 후에는 umask할 수

umask 0022

오류가 사라졌습니다.

실제로 이진 표기법은 이진 보수로 이해해야합니다.

따라서 파일 소유자를 umask쓸 때 아래의 마스크 0에서이 사용자는 자신이 만든 파일에 완전히 액세스 할 수 있습니다. 이 값 2은 두 번째 비트가 마스크됨을 의미하며,이 경우 기본적으로 다른 사용자는 파일 소유자가 작성한 파일에 쓸 수 없습니다.


답변