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
우분투에서만 테스트되었습니다.