Dans quelles situations un utilisateur ne laisserait-il pas le shell enregistrer sa commande dans l'historique?

18

Si j'ajoute export HISTCONTROL=ignorespacedans .bashrc, bash n'enregistrera toutes les commandes qui ont des espaces avant eux dans l' histoire. Mais je ne comprends pas dans quelles situations cela sera utile. Quelqu'un peut-il donner des exemples?

acgtyrant
la source

Réponses:

32

Si vos commandes contiennent des mots de passe ou d'autres informations sensibles

Ulrich Dangel
la source
4
@acgtyrant alors vous n'avez jamais entré de commande avec un mot de passe. L'idée est que si vous fournissez un mot de passe sur la ligne de commande, mettez simplement un espace avant la commande et il ne sera pas enregistré sur leHISTFILE
Ulrich Dangel
3
Les commandes mysql peuvent accepter le mot de passe de l'utilisateur avec lequel vous vous connectez à la base de données, il y en a trop pour les lister ici. Le point soulevé par @Ulrich Dangel est parfait. Si vous tapez des commandes avec des mots de passe, ne les laissez pas dans l'historique.
slm
5
J'ajouterai également que lorsque vous êtes administrateur, vous ne voulez souvent pas que l'historique soit affiché, car si un attaquant devait pénétrer dans le système, vous lui laissiez une trace de la situation sur la boîte et des types de commandes. sont généralement exécutés sur la boîte.
slm
1
Si vous ne disposez d'aucune commande contenant des informations sensibles, vous n'êtes pas le public cible pour cette fonctionnalité. Toutes les fonctionnalités d'un programme ne sont pas utilisées par tous les utilisateurs. (C'est une des raisons pour lesquelles les programmes ont un "fluage de fonctionnalités": tout le monde utilise une douzaine de fonctionnalités, mais une douzaine différente, et se demande à quoi servent tous les autres logiciels inutiles.)
Kaz
1
Gardez à l'esprit que les arguments de ligne de commande sont souvent visibles dans psou en regardant dedans /proc. Certains systèmes rendent également l'environnement visible aux autres utilisateurs. Un fichier en mode 0700 sur un tmpfs, OTOH, n'a pas ces problèmes.
derobert
26

Une autre utilisation concerne les commandes que vous ne souhaitez pas répéter accidentellement, telles que rm -rf *. Je fais un usage intensif de l'historique et Enterje frappe parfois accidentellement lorsque la commande que j'ai récupérée de l'historique n'est pas celle que je recherchais. Certes, la vraie solution est de toujours lire attentivement les commandes avant de les exécuter. Mais étant un peu maladroit, je préfère également garder les commandes particulièrement destructrices de mon histoire par précaution supplémentaire.

depquid
la source
14
Je rajouterais que je l' ai trouvé très pratique d'ignorer encore quelques commandes dangereuses , même si j'oublie d'inclure un espace: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Cela empêche rm -fet rm -rd'être enregistré dans l'histoire, ainsi que tout ce qu'il contient --force.
Petr Pudlák
C'est la / une vraie solution. Ne laissez pas de couteaux autour, en disant que la vraie solution est de ne pas vous en mêler. Comme le dit le vieux proverbe: «vous ne pouvez pas vous détacher de la rivière» - ce qui signifie ne pas nettoyer la rivière, mais plutôt arrêter de jeter des déchets dedans.
ctrl-alt-delor
6

Un de mes anciens collègues l'a fait avec la plupart des commandes cdet ls, pour n'enregistrer que les commandes "utiles".

Jan Fabry
la source
3
Je ne fais presque jamais tourner nethack au travail sans faire ça ... (ou top, ou mec ...)
lotsoffreetime
En fait, quelqu'un peut ajouter export HISTCONTROL=ingoredupsen .bashrcdire bash de ne pas stocker les doublons ainsi à rendre l' histoire plus claire. Vous pouvez lire cet article
acgtyrant
2

Confidentialité des données. Au moment où les forces de l'ordre enfoncent votre porte, vous ne voudrez peut-être pas qu'ils trouvent des résidus de

  • où vous wget le dernier pron ^ Wwarez de
  • quels films vous avez récemment déchirés et alimentés dans un torrent
  • mots de passe transmis via des arguments aux programmes de cryptage / décryptage

Sérieusement, c'est probablement l'équivalent d'un paramètre de confidentialité strict dans votre navigateur, l'empêchant d'enregistrer l'historique de navigation.

Jens
la source
0

Si vous contrôlez la version .bash_history c'est un moyen utile de marquer certaines commandes comme "spéciales". Combiné avec history-search- * , c'est un moyen d'appuyer simplement sur Space+ m+ Up+ Enterpour exécuter make --directory ~/dev/tilde cleanet Space+ e+ Up+ Enterpour exécuter editor ~/.bash_history, les deux que j'utilise pour la maintenance du fichier d'historique Bash.

l0b0
la source