컴퓨터 1과 컴퓨터 2에서 Ubuntu를 실행하고 있습니다. 컴퓨터 1에서 C ++ 프로그램을 컴파일했으며을 사용하여 터미널에서 실행할 수 있습니다 ./program_name
. 잘 작동합니다.
그러나 컴퓨터 2 에서이 작업을 수행하려고하면 다음과 같이 말합니다. bash: ./program_name: permission denied
무엇이 잘못되었고 어떻게해야합니까?
답변
chmod u+x program_name
. 그런 다음 실행하십시오.
그래도 문제가 해결되지 않으면 프로그램을 USB 장치에서 시스템의 기본 볼륨으로 복사하십시오. 그런 다음 chmod u+x program_name
로컬 사본에서 실행하십시오.
유닉스 및 유닉스 계열 시스템은 일반적으로 실행 권한이 표시되어 있지 않으면 프로그램을 실행하지 않습니다. 한 시스템에서 다른 시스템으로 파일을 복사하거나 외부 볼륨을 마운트 한 방식이 실행 권한을 해제했을 수 있습니다 (안전 기능으로). 명령chmod u+x name
은 파일을 소유 한 사용자가 파일을 실행할 수있는 권한을 추가합니다.
이 명령은 파일과 관련된 권한 만 변경합니다. 전체 볼륨과 관련된 보안 제어는 변경하지 않습니다. 실행을 방해하는 볼륨의 보안 제어 인 경우 (예를 들어, noexec
Unix fstab
파일 의 볼륨에 옵션이 지정되어 볼륨의 파일에 대한 실행 권한을 허용하지 않음) 볼륨을 다시 마운트 할 수 있습니다 실행을 허용하는 옵션이 있습니다. 그러나 파일을 로컬 볼륨에 복사하는 것이 더 빠르고 쉬운 해결책 일 수 있습니다.
답변
이 시도:
sudo chmod +x program_name
./program_name
답변
파일 권한에 실행 플래그가 설정되어 있지 않은 것 같습니다.
chmod u+x program_name