Pedindo uma senha sudo com antecedência

1

Eu tenho alguns scripts para fazer backup de dados. Alguns deles precisam de acesso root, então eu os uso com sudo . No entanto, às vezes fico confuso, por exemplo para o backup mySQL, que também precisa de uma senha de root mySQL.

Eu já implementei uma solução alternativa em um script bash como este

echo "Please enter root password"
sudo echo "Ok"
sudo mysqldump --all-databases --opt -u root -p  > ~/backup.dump

A idéia por trás disso é: a senha do sudo será armazenada em cache. Se for inserido no início, ele não será solicitado durante o backup do mySQL, portanto, ele não poderá ser mais confundido com a senha raiz do mySQL.

Esta abordagem é segura de usar ou há algo de errado com ela?

    
por Thomas Weller 22.10.2014 / 23:12

1 resposta

3

Sim,

essa abordagem é tão segura quanto qualquer uso normal de sudo .

Quando você usa sudo , a senha é armazenada em cache na configuração padrão.
E você usa um comando fictício para colocar a senha nesse cache padrão, por um comando que não faz nada, como root - o que certamente não é perigoso.

sudo apenas

Como o seu exemplo usa mysqldump , que também usa uma senha, eu gostaria de deixar claro que o acima não está relacionado à senha do mysql, só é relevante para o sudo na linha de exemplo sudo mysqldump ... .

Especialmente, não resolve o problema de fornecer uma senha para mysqldump etc em um script, sem que ela apareça na linha de comando em ps , top ou qualquer GUI do gerenciador de processos para todos os usuários no sistema.


Informações suplementares:

Definir tempo limite

O tempo limite do cache de senha sudo é de 15 minutos por padrão e pode ser alterado pela configuração de timestamp_timeout em sudoers . Usando sudo visudo , adicione uma linha como

Defaults    timestamp_timeout=30

para /etc/sudoers . (Defina timestamp_timeout para 0 para desativar o cache.)

    
por Volker Siegel 26.10.2014 / 09:44