Se você quer proteger-se principalmente contra alguém reinicializando acidentalmente, etc, enquanto houver outros usuários conectados, eu diria que a abordagem mais fácil é criar algum tipo de substituição para os comandos reboot / shutdown / poweroff. Essa substituição executaria as verificações que você deseja executar antes de chamar o binário real.
Os métodos menos intrusivos para criar tal substituição devem ser ou ter um alias de shell apontando para um script personalizado ou para definir uma função de shell. Ambos aliases e funções são tentados antes de o shell procurar um executável no PATH.