sh 스크립트 실행 : 실행 비트 및 루트 권한에도 불구하고«권한 거부» 공유 디렉토리 나 공유 클립 보드가 작동하지

VirtualBox에 데비안을 설치하고 (일반적으로 시스템을 손상시킨 다양한 실험을 위해) VirtualBox 게스트 애드온 스크립트를 시작하려고했습니다. 루트로 로그인하여 시작하려고했지만 autorun.sh«Permission denied»가 있습니다. ls -l스크립트에 실행 권한이 있음을 나타냅니다.

죄송합니다. 출력물을 복사 할 수 없습니다. VirtualBox는 애드온 없이는 공유 디렉토리 나 공유 클립 보드가 작동하지 않으므로 절대 사용할 수 없습니다. 그러나 당신이 확실히하기 위해, 나는 손으로 권리를 복사했습니다.

#ls -l ./autorun.sh
-r-xr-xr-x 1 root root 6966 Mar 26 13:56 ./autorun.sh

처음에는 스크립트가 오류를 일으킨 것을 실행한다고 생각했습니다. /bin/sh같은 것으로 바꾸려고 #/pathtorealsh/sh -xv했지만 출력이 없습니다. 스크립트를 실행할 수없는 것 같습니다.

나는 그것을 일으킬 수있는 아이디어조차도 없습니다.



답변

파일 시스템이 noexec옵션 세트 로 마운트되어 실행 파일을 실행할 수 없습니다. 에서 마운트 문서 :

noexec

마운트 된 파일 시스템에서 바이너리를 직접 실행하지 마십시오. (최근까지는 /lib/ld*.so / mnt / binary와 같은 명령을 사용하여 바이너리를 실행할 수있었습니다.이 기법은 Linux 2.4.25 / 2.6.0부터 실패합니다.)

시험:

mount | grep noexec

그런 다음 파일 시스템이 출력에 나열되어 있는지 확인하십시오.

그렇다면 exec다음 옵션으로 파일 시스템을 다시 마운트하여이 문제를 해결할 수 있습니다 .

mount -o remount,exec filesystem


답변

bash -x ./filename.filetype작동해야합니다. 루트 사용자로 권한이 거부되면 나에게 도움이되었습니다.


답변

이 문제에 대한 나의 해결책은 source 를 사용하는 입니다. 매우 중요한 데이터의 스토리지 볼륨에있었습니다. 이 볼륨은 noexec로 마운트됩니다. 실행 가능하지만 권한 문제가있는 간단한 셸 스크립트가 있습니다.

./fixsamplesheet.sh # this guy is executable
-bash: ./fixsamplesheet.sh: Permission denied

source fixsamplesheet.sh # worked fine

우분투에서만 테스트되었습니다.


답변