RHEL 7 - SSH 세션을 통한 명령 실행은 직접 실행과 다른 결과를 나타냅니다.

RHEL 7 - SSH 세션을 통한 명령 실행은 직접 실행과 다른 결과를 나타냅니다.

설치 진행에 명령이 포함되는 상황이 있습니다. 설치에 대한 명령(실제 명령이 아님)이 있다고 가정하고 첫 번째 프롬프트를 사용자 지정 사용자로 채우고 patch싶습니다 . 다음과 같은 스크립트를 만들었습니다.No

#!/bin/bash
patch -i <package> << EOF
No
EOF

chmod 777 그런 다음 파일을 실행할 때 넣었는데 ./installScript.sh권한이 거부되었지만 . installScript.sh제대로 작동했습니다.
수동으로 명령을 실행해도 patch잘 작동합니다. 질문하고 싶은 내용은 다음과 같습니다. 1/이 포럼을 통해
이전과 차이점은 알지만 왜 쉘이 권한에 영향을 미치는지 모르겠습니다. 2/스크립트에서 이를 우회할 수 있는 방법이 있나요? 목표는 대신 사용할 수 있다는 것입니다../file. file
./installScript.sh. installScript.sh

답변1

이전에 이 포럼에서 ./file 및 .file에 대해 알고 있었지만 쉘이 권한에 영향을 미치는 이유를 이해할 수 없습니다.

나도 마찬가지다. 하지만 확인해볼 사항은...

  • /bin/bash가 존재하고 실행 가능합니까?
  • 파일 시스템의 스크립트가 noexec를 사용하여 마운트되어 있습니까?
  • MAC 시스템(apparmor, SELinux, smack)을 실행하고 있습니까?

내 스크립트에서 이를 우회할 수 있는 방법이 있나요? 목표는 .installscript 대신 ./installScript.sh를 사용할 수 있다는 것입니다.

실행은 대화형 세션에서 실행하는 ssh user@remote "bash installScript.sh"것과 같습니다 .. installScript.sh

관련 정보