2015-01-21 7 views
0

나는 bash 및/또는 perl에 매우 신비한 문제가 있습니다. 나는 그 행동을 묘사하려고 노력할 것이다.bash가 실행 가능한 펄 스크립트를 인식하지 못합니다.

./perlscript.pl 

를 통해 펄 스크립트를 실행하면 나에게 권한 거부 메시지를 제공합니다.

은 (내가 파일의 소유자 및 그 경로 -from 내 홈 디렉토리입니다 파일이 #!/usr/bin/perl-rwxr-xr-x 실행 가능 포함)

이 같은 스크립트 실행 :

perl perlscript.pl 

은 괜찮습니다 ...

누구든지 내 bash를 고칠 수 있습니까? 당신


$ which perl 
/usr/bin/perl 

$ head -1 file.pl | od -c 
0000000 # !/u s r/b i n/p e r l \n 
0000020 
+2

파일에 DOS 줄 바꿈이 있습니까? –

+2

'! #/usr/bin/perl' 또는 오타라고 말하셨습니까? 올바른 지시어는'#!/usr/bin/perl' 또는 더 나은'#!/usr/bin/env perl'입니다. –

+0

제안에 감사드립니다. 1. 파일에 DOS 행이 없습니다 (예 : \ r \ n에 대해 예지를 시도했습니다). 2. #라고 말하려고 했어! . 고맙습니다. 내 게시물을 수정하겠습니다 –

답변

6

perlscript.plnoexec 플래그 장착있는 파일 시스템 감사합니다?

당신이 리눅스에 있다고 가정하면, cat /proc/mountsnoexec을 적절한 파일 시스템으로 찾으십시오.

noexec 플래그는 누구나 파일 시스템에있는 파일 (./perlscript.pl 일 때 bash가하는 것)에서 exec을 호출하지 못하게합니다. 그러나 perl perlscript.pl/usr/bin/perl의 exec를 호출하며,이 경우 perlscript.pl이 열립니다.

noexec 탑재 파일 시스템의 파일은 여전히 ​​의 실행 권한이 일 수 있으며 사용 권한을 갖지 못합니다.

+1

나는 매우 똑같은 생각을했습니다. localy로 마운트 된 파일 시스템과 빙고로 테스트했습니다 : root로 mount -o loop, noexec 빈 마운트 => 내 사용자로 : cd mounted ./perlscript.pl 실패,. AND 파일은 여전히 ​​+ x 권한으로 볼 수 있습니다. 이제 @Karlo ...의 확인을 기다리고 있습니다. –

+0

네, 그게 문제입니다.내 홈 디렉토리를 마운트 된 저장 공간으로 옮겼고 'cat/proc/mounts'옆에 noexec이 있습니다 ... 감사합니다 !! –