Ubuntu 20.04.2를 새로 설치하여 Python 스크립트를 실행하고 있습니다. 이 스크립트는 디렉토리가 존재하는지 확인하고 존재하지 않으면 디렉토리를 생성합니다. 코드는 다음과 같습니다
os.makedirs(f'..{os.sep}logs{os.sep}')
다음 오류가 발생합니다.
PermissionError: [Errno 13] Permission denied: '../logs/'
명령 프롬프트에서 sudo만 추가했지만 이러한 디렉터리를 생성하려면 Python 스크립트가 필요합니다. 따라서 Python이 새 디렉터리를 생성하도록 허용하려면 어떻게 해야 합니까?
답변1
간단한 대답은: 당신은 모릅니다. 귀하의 스크립트가 높은 권한을 요청하고 얻을 수 있다고 확신하지만 이를 수행하는 일반적인 방법은 스크립트를 실행하는 사람이 스크립트에서 변경해야 하는 내용에 액세스할 수 있다고 가정하는 것입니다. 결국 사용자에게 권한이 없으면 해당 사용자는 애초에 스크립트를 실행할 자격이 없는 것입니다.
따라서 스크립트를 작성하고 사용자가 원하는 작업을 수행할 수 있는 권한이 있는지 확인하도록 맡기십시오. 대신 스크립트를 수정하여 오류를 포착하고 보다 유익한 오류 메시지를 제공하여 사용자가 액세스해야 하는 디렉터리와 액세스 권한 종류를 알 수 있도록 해야 합니다. 따라서 ../log
전체 경로를 가져오고 "권한이 거부되었습니다" 대신 필요한 권한을 확인하고 시도하기 전에 테스트하십시오. 이렇게 하면 오류를 우아하게 처리하고 사용자에게 필요한 것을 알릴 수 있습니다.