따라서 편의상 모든 데이터를 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
.bat
noexec
user
users
or를 사용하는 경우 user
or 옵션 뒤에 명시적으로 지정된 마운트 옵션을 사용하여 users
마운트하면 실행 권한 비트를 얻을 수 있습니다.exec
user
users
설치보기맨페이지더 알아보기.
답변2
umask
FAT 또는 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