bash: /root/bin/hello_world: 권한이 거부되었습니다.

bash: /root/bin/hello_world: 권한이 거부되었습니다.

CentOS 7을 사용하고 있습니다.

  1. 나는 이렇게 첫 번째 bash 스크립트를 작성했습니다.

    #!/bin/bash
    echo 'this is my first code'
    

    나는 그것을 다음과 같이 저장한다.안녕하세요 세계

  2. 내 루트 홈 디렉터리에 디렉터리를 만들었습니다.

    mkdir bin
    
  3. 그런 다음 스크립트를 해당 ~/bin디렉토리로 옮겼습니다.

  4. 그런 다음 나는 이렇게 했습니다.

    export PATH=~/bin:"$PATH"
    source ~/bin
    
  5. 그런 다음 다음 명령을 사용하여 스크립트를 실행해 보았습니다.

    hello_world 
    

하지만 나는 그것을 볼 수 없지만 오류 this is my first code가 발생합니다 bash: /root/bin/hello_world: Permission denied.

답변1

명시적인 인터프리터 실행 없이 스크립트를 실행하려면(그림 참조 bash ~/bin/hello_world) 스크립트 파일에 "실행 가능 비트" 세트가 있어야 합니다. 이는 다음과 같이 수행됩니다 chmod(설명서 참조).

chmod u+x ~/bin/hello_world

파일 소유자의 실행 가능 비트를 설정합니다.

또는,

chmod +x ~/bin/hello_world

이는 현재 umask.​umask022


수행한 단계는 source무의미하며 오류 메시지가 표시됩니다(디렉토리를 가져올 수 없습니다).

PATH새 설정을 "영구적으로" 설정해야 하는 경우 export PATH쉘의 시작 파일에 이 행을 추가하십시오( 대화형 쉘을 ~/.bashrc사용하는 경우 ).bash


또한 대화형 루트 프롬프트에서 작업하지 마십시오. 테스트 및 탐색을 위해 그리고 sudo관리 작업을 수행해야 하는 드문 경우에는 권한이 없는 사용자 계정을 사용하십시오 .

관련 정보