설치 진행에 명령이 포함되는 상황이 있습니다. 설치에 대한 명령(실제 명령이 아님)이 있다고 가정하고 첫 번째 프롬프트를 사용자 지정 사용자로 채우고 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