+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`

관련 정보