RHEL 7.x 시스템에 Python3으로 작성된 스크립트가 있습니다. 이 스크립트를 테스트하는 동안 동일한 디렉터리의 텍스트 파일에 추가되는 함수를 만들었습니다.
로컬 디렉터리에서 스크립트를 실행하면 ./pyscript.py
모든 것이 예상대로 작동합니다.
하지만 몇 개의 디렉터리보다 높은 Bash 스크립트에서 이 작업을 수행하려고 하는데 작동하지 않는 것 같습니다. 스크립트의 다른 함수는 실행되지만 텍스트 파일에 추가된 마지막 함수는 실행되지 않습니다.
이제 스크립트(및 txt 파일)를 소유한 사용자로 홈 디렉터리에서 스크립트를 실행하면 스크립트에 권한 오류가 발생합니다. 그러나 스크립트를 실행하면 sudo
오류가 발생하지 않지만 텍스트 파일에 쓰지 않습니다.
내 사용자는 bash 스크립트와 Python 스크립트 사이의 모든 디렉터리에 대해 RW 권한을 가지고 있습니다.
sudo
로컬 사용자로 실행하면 텍스트 파일에 쓸 수 없는 이유에 대한 아이디어가 있습니까?
답변1
나는 이것을 해결했다. 문제는 다른 디렉터리에서 스크립트를 실행할 때 Python 스크립트가 실행 디렉터리를 로컬 디렉터리로 취급한다는 것입니다. 그래서 내 코드에는 다음이 있습니다.
with open('myfile.txt', 'a') ...
실제 파일을 열려고 하는 것이 아니라 명령을 실행하는 디렉터리에 없는 파일에 액세스하려고 합니다.
문제를 해결하려면 텍스트 파일의 전체 경로를 사용하세요.