마운트 된 외장 드라이브에서 스크립트를 실행할 수 없습니다


23

/ mnt / ext는 외장 하드 드라이브 인 ext2 파일 시스템에 마운트됩니다. 어떤 이유로 거기에서 스크립트를 실행할 수 없습니다. 아래 세션을 참조하십시오.

luntain@plato /mnt/ext $ echo "echo success" > k.sh
luntain@plato /mnt/ext $ chmod 777 k.sh
luntain@plato /mnt/ext $ ./k.sh
-bash: ./k.sh: Permission denied
126luntain@plato /mnt/ext $ ll k.sh
-rwxrwxrwx 1 luntain luntain 13 Jan 23 15:08 k.sh*
luntain@plato /mnt/ext $ 

왜 오류가 발생하는지 알고 싶습니다.

답변:


22

아마 거기 noexec파일 시스템이 장착 된 속성 세트; 아마도 그것은 당신의 배포 '기능'일 것입니다.

이를 확인하려면 mount괄호 안에 마운트 옵션을 표시하고 루트에서 noexec사용할 수있는 플래그 를 제거하는 실행 을 실행할 수 있습니다 mount -o remount,exec /mnt/ext.

또한 사용자 옵션 뒤에 exec 옵션을 배치해야합니다. 그렇지 않으면 시스템이 여전히 드라이브를 noexec로 마운트합니다.



3

마운트 된 파일 시스템 noexec은 스크립트 실행을 막기 만합니다 (즉, 커널이 매직 넘버 또는 shebang 라인에 따라 적절하게 실행하도록 요청합니다). 마운트 된 다른 파일 시스템에서 인터프리터를 호출하고 해당 인터프리터에 exec스크립트를 인수 (또는 stdin)로 전달하는 것을 막을 수는 없습니다 . 어고 (Ergo)는 루트가 아니라면 그냥이 문제를 해결했을 수 있습니다 sh k.sh.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.