+x 플래그에도 불구하고 쉘 스크립트 권한이 거부되었습니다.

+x 플래그에도 불구하고 쉘 스크립트 권한이 거부되었습니다.

이것은 이상한 문제입니다. 하나의 서버(공유 호스팅이므로 구성 및 로그에 대한 액세스가 제한됨)에서만 발생하지만 이해할 수 없습니다.

일부 응용 프로그램 배포를 실행하는 셸 스크립트가 있습니다. 파일에 +x 플래그가 있지만 셸에서 파일 이름을 호출하는 것만으로는 실행할 수 없으며 "액세스 거부" 오류가 발생합니다. 파일 이름을 인수로 사용하여 bash를 호출하는 것은 매력처럼 작동합니다. 다음과 같습니다.

[someuser@someserver:~] $cat test.sh
echo "hooray!"
[someuser@someserver:~] $chmod +x test.sh
[someuser@someserver:~] $ls -l test.sh
-rwxrwxr-x 1 someuser someuser 14 Oct  8 11:27 test.sh
[someuser@someserver:~] $./test.sh
-bash: ./test.sh: Permission denied
[someuser@someserver:~] $bash test.sh
hooray!

처음에 추가하는 것은 #!/bin/bash도움이 되지 않습니다. 나는 또한 다른 쉘(기본값은 bash, sh에서 시도)에서도 시도했는데 같은 일이 발생했습니다.

이것은 큰 문제는 아니지만 나에게는 혼란스럽습니다. 이유는 무엇입니까?

답변1

제 생각에는 스크립트가 위치한 폴더에 대한 "noexec" 마운트 옵션 때문인 것 같습니다. 이 명령을 통해 확인할 수 있습니다

mount | grep `df -P /path/to/folder/with/script | tail -1 | cut -d ' ' -f 1`

관련 정보