Скрыть экспортированные переменные ENV из истории

Привет, рад присоединиться к вашему сообществу. Это мой первый пост, поэтому начну с простого, но полезного. Возможно, вы еще не знаете об этом.

Когда вы работаете с сервером Linux, иногда вы экспортируете некоторые переменные среды. Некоторые окружения могут быть нейтральными, например NODE_ENV=production или что-то еще, но иногда они должны быть безопасными, например GITHUB_API_KEY или MYSQL_PASSWORD.

Проблема в том, что если кто-то получит доступ к серверу bash и введет команду history, он увидит секреты:

...
1989 export MYSQL_PASSWORD=my_secret_mysql_password
...
2000 history

На всякий случай перед работой с bash экспортируйте переменную среды управления историей Linux, которая называется HISTCONTROL.

$ export HISTCONTROL=ignorespace

ignorespace означает, что если вы оставите пробел перед любой командой bash, она будет проигнорирована в истории.

Поэтому при экспорте секретной переменной среды введите пробел перед export

$ export HISTCONTROL=ignorespace
# keep in mind the space before export
$  export MYSQL_PASSWORD=my_secret_mysql_password
$ history

Итак, теперь пароль Mysql будет игнорироваться в истории.

...
1999  export HISTCONTROL=ignorespace
2000  history

Этот метод предназначен не только для переменных среды, он также может скрыть любую команду bash, даже сам export HISTCONTROL=ignorespace.

Удачи и будь осторожен! :)

Подписывайтесь на Twitter, GitHub и давайте общаться на LinkedIn.

Первоначально опубликовано на https://dev.to 30 января 2020 г.