É seguro editar ~ / .bash_history “live”?

1

bash armazena o histórico da linha de comando de um usuário em um arquivo de texto simples "~ / .bash_history" .

Supondo que apenas um usuário esteja usando um terminal único, existem efeitos colaterais ruins ao abrir "~ / .bash_history" em um editor de texto baseado em terminal, (ou sed , et al ), e salvá-lo enquanto a instância desse usuário de bash está sendo executada?

    
por agc 23.08.2018 / 20:29

2 respostas

2

Se for um único terminal, com apenas um usuário usando, não, não há problema.

O histórico de bash pode ser usado como log, mas é apenas para o usuário, portanto não é seguro para verificações de segurança, se você quiser um log mais seguro, configure rsyslog e considere colocar seu log em outra partição com replicação e gire log.

Por exemplo, tente logar como algum usuário, faça alguns comandos e execute kill -9 $$, você verá que os logs não estão registrados no histórico bash.

Para configurar o rsyslogd, o básico que você quer fazer é (no debian por exemplo):

cat >/etc/rsyslog.d/bash.conf
local6.*    /var/log/commands.log
[CTRL+D for save the file)

Então,

editor /etc/bash.bashrc

E dentro (depois das primeiras linhas)

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$SSH_CLIENT $(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND
    
por 23.08.2018 / 20:40
2

O arquivo de histórico bash é apenas um arquivo de texto simples que mantém um registro dos comandos históricos processados na conta do usuário.

Não deve haver efeito, a menos que você tenha scripts que processem esse arquivo por algum motivo.

Por exemplo - acabei de excluir meu histórico bash e saí do terminal, depois entrei novamente. O Bash criou um novo arquivo de histórico.

Dica: se você quiser evitar que um comando seja registrado em seu histórico, preceda-o com um espaço.

    
por 23.08.2018 / 20:38