WSL 내부의 Windows 인터프리터를 사용하여 Python 스크립트를 sudo로 실행하려고 시도했지만 "파일을 찾을 수 없음"이 발생했습니다.

WSL 내부의 Windows 인터프리터를 사용하여 Python 스크립트를 sudo로 실행하려고 시도했지만 "파일을 찾을 수 없음"이 발생했습니다.

내 WSL Debian에는 라는 Python 스크립트가 있습니다 pasman. 이 스크립트는 내 홈 디렉터리 bin폴더에 있으며 여기에 사용자 지정 스크립트가 보관되어 있습니다. WSL 시스템의 어느 곳에서나 이 스크립트를 실행할 수 있도록 파일 export에 명령문이 있습니다 . 또한 필요할 때 스크립트를 실행하기 위해 파일 에 폴더를 설정 .bashrc했습니다 .binvisudosudo

이 Python 스크립트에는 shebang이 있습니다.

#!/mnt/c/Users/<MyWindowsUsername>/AppData/Local/Programs/Python/Python38/python.exe

Windows용 Python 인터프리터를 사용하여 실행하고 싶기 때문입니다.

문제는 이 스크립트를 의 소유로 유지하고 싶기 때문에 root로 실행해야 sudo하지만 로 실행하면 다음과 sudo같은 결과를 얻게 된다는 것입니다.

C:\Users\<MyWindowsUsername>\AppData\Local\Programs\Python\Python38\python.exe: can't open file '/home/<mylinuxusername>/bin/pasman': [Errno 2] No such file or directory

스크립트를 소유하지 않고 에서 root실행 하면 sudo완벽하게 실행됩니다.

따라서 문제는 Windows Python 인터프리터가 WSL에서 내 스크립트를 찾을 수 없다는 것이 아니라 스크립트를 찾지 sudo않고 로 실행될 때만 스크립트를 찾을 수 없다는 것입니다.sudo

나는 또한 문제가 export.bashrc파일의 진술에 있다고 생각하지 않습니다. 만약 그렇다면, 로 실행하려고 하면 sudo다음과 같은 결과가 나올 것입니다 sudo: pasman: command not found.. 내 user 에서도 sudo내 명령을 찾았습니다 .pasmanexport.bashrc

왜 이런 일이 일어나는지 아는 사람이 있나요?

관련 정보