다른 Linux 파티션에서 프로그램을 실행할 수 없는 이유는 무엇입니까?

다른 Linux 파티션에서 프로그램을 실행할 수 없는 이유는 무엇입니까?

따라서 편의상 모든 데이터를 Windows 파티션에 저장하여 Linux와 Windows에서 쉽게 데이터에 액세스할 수 있습니다. 그러나 g++를 사용하여 C++ 프로그램을 컴파일하려고 시도했지만 g++를 ./program_filename사용하여 프로그램을 실행할 수 없다는 것을 발견했습니다.

bash: program_filename: Permission denied

행위

cp program_filename ~/program_filename

그러나 내 홈 디렉토리에서 실행하면 정상적으로 작동합니다.

chmod +rwx program_filename그래서 시도해 보았지만 ls -l표시 권한은 여전히 -rw-------.​​디렉터리의 모든 파일에 설정되어 있습니다. 루트로 이 작업을 수행하면 아무 것도 변경되지 않습니다.

간단한 해결책이 있습니까?

(도움이 된다면 Fedora 16 x64를 실행하고 있습니다.)

답변1

설치 옵션이 실행 권한 비트를 허용하는지 확인하십시오.

마운트된 파일 시스템의 파일에 대한 권한을 제한하는 데 사용할 수 있는 마운트 옵션이 있습니다. 일반은 모든 파일의 실행을 차단하고 FAT 관련 옵션은 noexec확장자가 , 및 .인 파일에만 showexec권한을 부여합니다 . 또한 암시된 내용도 참고하시기 바랍니다..exe.com.batnoexecuserusers

or를 사용하는 경우 useror 옵션 뒤에 명시적으로 지정된 마운트 옵션을 사용하여 users마운트하면 실행 권한 비트를 얻을 수 있습니다.execuserusers

설치보기맨페이지더 알아보기.

답변2

umaskFAT 또는 NTFS 파티션을 마운트할 때 권한은 fmask설치 시 및 옵션에 따라 결정됩니다 dmask. 첫 번째는 범용이고, 나머지 두 개는 파일 및 디렉터리에만 적용됩니다.

또한 파티션에 있는 모든 파일과 디렉토리의 소유자와 그룹을 설정하는 데 관심을 갖고 선택할 수도 있습니다 uid.gid

한 가지 예:

mount -t ntfs-3g -o uid=500,gid=500,umask=0022 /dev/sda1 /mnt/win

답변3

Puppy Linux에서는 기본적으로 NTFS 또는 FAT 파티션에서 스크립트를 실행할 수 있습니다.http://murga-linux.com/puppy/viewtopic.php?t=95174

관련 정보