Uso do histórico de bash protegido

3

Eu sei que todos os comandos enviados pelo usuário para o servidor são registrados automaticamente em ~/.bash_history

Eu quero dar acesso ao meu PC para o meu colega (eu já dei o hime algum acesso limitado para usar o sudo via /etc/sudoers ), mesmo que eu confie nele, eu adoraria saber de forma confiável o que ele fez em meu PC - então eu preciso ter certeza:

  • o seu ~/.bash_history não pode ser comprometido (ele não pode truncar ou de alguma forma alterar o arquivo)
  • ele não pode alterar variáveis críticas de env, o que afetaria o registro - como HISTCONTROL, HISTFILE ou HISTSIZE
  • ele não pode executar algo como history -c

Eu não sei se eu esqueci alguma coisa, mas eu só preciso ter certeza, que depois de vir ao PC, eu vou ver tudo o que ele fez.

    
por Radek Simko 10.07.2011 / 22:31

1 resposta

9

Proteja os arquivos de configuração bash_history e bash, tornando-os somente para inclusão:

chattr +a /home/user/.bash_history em chattr +a /home/user/.bash_profile em chattr +a /home/user/.bash_login em chattr +a /home/user/.profile em chattr +a /home/user/.bash_logout em chattr +a /home/user/.bashrc

Defina as variáveis env adicionando as seguintes linhas ao /home/user/.bashrc:

shopt -s histappend
readonly PROMPT_COMMAND="history -a"
readonly HISTFILE e readonly HISTFILESIZE
readonly HISTSIZE e readonly HISTCMD e readonly HISTCONTROL e readonly HISTIGNORE

histappend diz ao bash para anexar as últimas linhas $ HISTSIZE ao arquivo $ HISTFILE quando um shell interativo sair. PROMPT_COMMAND executa o comando fornecido antes de emitir cada prompt. history -a acrescenta o comando digitado logo antes do atual para $ HISTFILE.

Desativar o acesso a outros shells:

chmod 750 csh e chmod 750 tcsh e chmod 750 ksh

    
por 10.07.2011 / 23:04