• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

쉘 스크립트 실행권한 차이

22.04.16 18:31 작성 조회수 212

1

쉘 스크립트를 실행하는 실습에서

./script 명령어로 permission을 7xx로 줘서 실행하는 예제를 보여주셨는데요.

 

sh script

. script

와 같은 명령들은 permission이 6xx로 rx 권한만 있어도 실행이 됩니다.

왜 위 두 명령어는 x 권한이 없어도 실행이 가능한지 궁금합니다.

니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 으아니동동님.

좋은 질문 주셨네요. 답변 드리겠습니다.

sh test.sh 라는 명령을 내렸을 때, sh는 실행되는 애플리케이션이고, test.sh은 sh라는 실행 애플리케이션의 입력 아규먼트로  분류됩니다. ls test.sh에서 ls가 실행 애플리케이션, test.sh이 입력 아규먼트인 것과 같은 이치입니다. 따라서 이 명령의 경우 sh에는 해당 사용자가 실행할 수 있는 권한이 필요합니다. sh의 경우 owner, group, other 모두에게 실행 권한이 주어져있을 것입니다.

입력 아규먼트인 test.sh에는 어떤 권한이 필요할까요? 실행 애플리케이션이 입력 아규먼트인 test.sh 파일에 어떤 행위를 하느냐에 따라 달려있습니다. 실행 애플리케이션이 입력 아규먼트 파일을 읽기만 한다면 읽기 권한만 있으면 될 것이고, 입력 아규먼트 파일에 쓰려고 한다면 쓰기 권한도 필요할 것입니다.

결국, sh test.sh 명령에서 test.sh 파일에 필요한 권한은 읽기 권한입니다. sh가 해당 파일을 읽어 실행하는 행위를 할텐데요, 이 경우 test.sh 파일에 쓰기 권한이나 실행 권한은 필요가 없는 것이죠. . test.sh도 마찬가지입니다. 

잘 이해가 안되시는 부분이 있으시면 추가 댓글로 질문 남겨주세요~ 감사합니다~!! :D