Estou executando um script Python em uma nova instalação do Ubuntu 20.04.2. O script verifica se existe um diretório e o cria, caso contrário. O código é:
os.makedirs(f'..{os.sep}logs{os.sep}')
Estou tendo o erro a seguir:
PermissionError: [Errno 13] Permission denied: '../logs/'
No prompt de comando, eu apenas adicionaria um sudo, mas preciso do meu script Python para poder criar esses diretórios. Minha pergunta é como posso permitir que o Python crie novos diretórios?
Responder1
A resposta simples é: você não. Embora eu tenha certeza de que é possível fazer com que seu script solicite e obtenha permissões elevadas, a maneira normal de fazer isso é presumir que quem executa o script tem acesso ao que o script precisa alterar. Afinal, se o usuário não tiver permissão, em primeiro lugar, ele não terá a responsabilidade de executar o script.
Portanto, basta escrever seu script e deixá-lo para o usuário garantir que ele tenha o direito de fazer o que deseja. Em vez disso, você deve modificar seu script para detectar o erro e fornecer uma mensagem de erro mais informativa para que o usuário possa saber a qual diretório ele precisa de acesso e que tipo de acesso. Portanto, em vez de ../log
, obtenha o caminho completo e em vez de "permissão negada", verifique quais permissões são necessárias e teste-as antes de tentar a operação. Dessa forma, você pode errar normalmente e dizer ao usuário o que ele precisa.