rootsh é um shell que loga tudo o que um usuário root vê no terminal. É útil se você tem vários administradores com acesso root num servidor e você quer gravar exatamente o que o usuário faz.
Fazer o download do rootsh-1.5.3.tar.gz.
wget http://www.virtualxp.org/downloads/rootsh-1.5.3.tar.gz
Descompactar, configurar, compilar e instalar:
tar zxvf rootsh-1.5.3.tar.gz -C /usr/src cd /usr/src/rootsh-1.5.3 ./configure --disable-syslog --disable-linenumbering make make install
Depois de instalado os binários, o sistema está quase pronto. A única necessidade que falta é criar o diretório do rootsh em /var/log onde serão gravados os logs. Esse procedimento não está documentado, mas é necessário.
mkdir /var/log/rootsh
Para garantir que o usuário root usará o rootsh como shell padrão, adicione o rootsh ao arquivo /etc/shells:
echo /usr/local/bin/rootsh >> /etc/shells
Após esse passo, definir o shell para o usuário root
usermod -s /usr/local/bin/rootsh root
Então, toda vez que o usuário root fizer login, seja direto por ssh ou por su será criado um arquivo de log em /var/log/rootsh com a seguinte estrutura:
< user >.< date >< time >.< process id >
A formatação de cada arquivo de log é exatamente a mesma que o usuário vê no terminal.
cd /var/log/rootsh ls root.20100420105208.00a0a.closed #
Se você não confia em seus sysadmins, ou se você quer ter um controle a mais do que está sendo feito no seu sistema, não tem erro com rootsh
Você não acha que uma solução mais eficiente seria colocar um sistema de controle de versão para manter o controle dos arquivos de configuração?
Sem dúvidas, mas daí é outro escopo, o apresentado nesse artigo é justamente saber o que um usuário com acesso ao root está fazendo e o que levou a “dar pau” no sistema, caso isso seja necessário saber, sempre tem aquela história “já estava assim quando entrei”…
:)
Amigo,
Fiz o procedimento, mas não consigo logar com o root e se eu uso outro usuário e dou um su- recebo a mensagem:
su: /usr/local/bin/rootsh: No such file or directory
Você pode me dizer cmo eu corrijo isso?
Obrigado,
André.
O erro apresentado quer dizer que não foi possível encontrar o arquivo /usr/local/bin/rootsh
Certifique-se que o arquivo está lá, com o comando:
ls -al /usr/local/bin/rootsh
E veja também as permissões dele.
Obrigado Daniel irei tentar aqui.
Outra coisa vc poderia me dizer como eu posso dar permissão para um usuário utilizar o rootsh?
Se o arquivo existir:
chmod 1755 /usr/local/bin/rootsh
Daniel,
não existe arquivo ou diretório.
O que devo fazer?
Obrigado.