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://downloads.sourceforge.net/project/rootsh/rootsh/1.5.3/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
Garantindo que o usuário root usará o rootsh como shell padrão
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 #
Conclusão
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

7 comments
Join the conversationEdgar Gabaldi - 27/04/2010
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?
Daniel Kühl Lima - 27/04/2010
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”…
:)
André - 18/08/2011
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é.
Daniel Kühl Lima - 22/08/2011
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.
André - 22/08/2011
Obrigado Daniel irei tentar aqui.
Outra coisa vc poderia me dizer como eu posso dar permissão para um usuário utilizar o rootsh?
Daniel Kühl Lima - 22/08/2011
Se o arquivo existir:
chmod 1755 /usr/local/bin/rootsh
André - 22/08/2011
Daniel,
não existe arquivo ou diretório.
O que devo fazer?
Obrigado.