![나에게 어떤 권한이 있습니까? (bourne 쉘 스크립트에서 확인) [닫기]](https://linux55.com/image/53635/%EB%82%98%EC%97%90%EA%B2%8C%20%EC%96%B4%EB%96%A4%20%EA%B6%8C%ED%95%9C%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20(bourne%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%ED%99%95%EC%9D%B8)%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
저는 git용 원격 비서를 개발 중입니다. 이 스크립트는 Bourne 쉘에 있습니다.
내 홈 디렉터리에 임시 디렉터리를 만들고 싶습니다. 어떤 이유로 내 허가가 거부되었습니다. 아무런 문제 없이 쉘에서 직접 동일한 명령을 실행할 수 있습니다.
모든 환경 변수는 정상적으로 보입니다. $HOME, $USER, ... homedir에는 일반 권한 집합이 있습니다(예: 사용자가 모든 것을 쓸 수 있음). 테스트용으로 데비안을 사용하고 있습니다.
문제의 명령은 다음과 같습니다.
mkdir --mode=600 --parents /home/<user>/.tmp/$$
이상하게도 디렉토리는 효과적으로 생성되지만 여기에 파일을 넣으려는 다음 줄이 다시 거부됩니다. 이번에는 파일이 생성되지 않습니다.
쉘이 실행 중입니다:
set -e # errexit
set -u # nounset
set -f # noglob
set -C # noclobber
set -x
하지만 그것들이 없으면 내 허가는 여전히 거부됩니다.
ps: 방금 $GIT_DIR에서 시도했는데 사용자에게도 쓰기 권한이 있고 권한도 거부되었습니다. 하지만 이번에는 디렉터리 생성이 아니라 다음 줄의 파일 생성에 관한 것입니다.
그러면 누가 나를 거부하는지, 왜 거부하는지 어떻게 알 수 있나요?