Execute o "script de logout" para shells que não são de login

1

Eu tenho um script .bash_logout que eu coloquei nos diretórios home dos usuários vagrant e root de uma VM (criado, como você já deve ter adivinhado , com o Vagrant ) que estou usando para desenvolvimento.

O script copia todos os meus arquivos de ponto importantes em um diretório que é compartilhado entre o sistema operacional host e o sistema operacional convidado, para que eu possa facilmente verificá-los no meu repositório Git, acompanhar as alterações e mais facilmente realizar melhorias. feita na configuração de uma VM para outra.

O problema que estou encontrando (que você provavelmente também adivinhou) é que o script nunca é executado para o usuário root , pois eu su to root ao invés de logar como root .

Existe alguma maneira de executar um script toda vez que você exit um shell digitado por su ing para outro usuário? Não tecnicamente um script de logout, suponho, mas praticamente a mesma coisa em espírito.

    
por iconoclast 14.08.2013 / 23:12

1 resposta

4

Você pode criar um shell de login com su da seguinte forma:

su - [user]

Se você não deseja criar um shell de login, pode usar um trap de saída.

trap_exit() {
    . "$HOME/.bash_logout"
}
trap trap_exit EXIT

Coloque o código acima nos arquivos .bashrc dos usuários.

    
por 14.08.2013 / 23:18

Tags