Je le fais parfois echo "secret" | mysql -u root -p ...
. Maintenant, je suis préoccupé par la sécurité ici: quelqu'un répertoriant tous les processus peut-il voir le mot de passe?
Pour vérifier j'ai essayé avec echo "test" | sleep 1000
et la commande echo avec le secret n'était pas visible dans la sortie de "ps aux". Je suppose donc que c'est sécurisé - mais un expert en sécurité peut-il le confirmer s'il vous plaît? :)
.history
) dans un fichier historique .Réponses:
La réponse à cela dépend du shell que vous utilisez. De nombreux shells ont
echo
une commande intégrée, ce qui signifie qu'il ne génère pas de processus séparé et n'apparaîtra donc pas dans une liste de processus. Cependant, si vous tapez/bin/echo
ou./echo
ou si vous désactivez lesenable -n echo
commandes internes avec la commande, le shell n'utilisera pas sa commande intégrée et utilisera la version binaire à la place. Cela apparaîtra dans une liste de processus.Si vous utilisez le binaire plutôt que le shell intégré, la commande echo s'affichera aussi longtemps qu'il faudra pour déplacer les données dans le tampon STDIN de l'autre processus. Ce tampon a une taille finie donc s'il y a plus de données qu'il n'y en a dans le tampon, la commande echo devra rester un moment jusqu'à ce que l'autre processus puisse lire certaines des données du tampon. Pour la plupart des cas (comme les deux exemples que vous avez donnés ci-dessus), cette période sera de microsecondes. Si vous collez un vidage SQL de 20 Mo dans MySQL à l'aide d'écho, cela pourrait être plus long. Quelle que soit la durée, si vous utilisez le binaire au lieu du shell intégré et que quelqu'un arrive à obtenir le bon timing, il pourra voir le processus dans la liste des processus.
Vous pouvez éviter cela en plaçant les données secrètes dans un fichier (avec les autorisations appropriées) et en utilisant le fichier comme STDIN comme ceci:
la source
Pour le cas mysql, ~ / .my.cnf peut être utilisé pour stocker des secrets, c'est-à-dire
la source
Utilisez simplement
et appuyez sur Entrée. Le mot de passe vous sera alors demandé et il ne sera pas visible dans la liste des processus ou dans les fichiers d'historique.
la source