Como Kassandry disse, você não pode fazer isso com um comando dentro da própria prisão.
O que você poderia fazer, no entanto, seria criar um usuário separado (a quem chamarei daqui em diante closer
no sistema host. Esse usuário deve ser bloqueado para que possa efetuar login apenas com uma chave SSH.
Seu usuário preso deve ter a chave privada e a senha da chave.
No lado do host, você concede as permissões sudo da conta closer
:
closer localhost=NOPASSWD:/usr/sbin/shutdown
No lado do host, coloque a parte pública da chave SSH em /home/closer/.ssh/authorized_keys
. Edite a chave para que comece com
command="sudo /usr/sbin/shutdown",from="1.2.3.4"
e depois segue a chave real, tudo na mesma linha. (Corrigir o endereço IP para que ele corresponda à cadeia, é claro.) Torne o arquivo authorized_key
e o diretório não gravável para o usuário.
Quando o usuário no sistema encarcerado agora usa essa chave para o SSH para o host, ele imediatamente acionará um desligamento. O usuário não poderá fazer mais nada com a chave - sempre que a usar para efetuar login, simplesmente executará o comando. A chave só pode ser usada a partir desta cadeia, assim você não corre o risco de dar ao mundo inteiro o acesso ao desligamento do seu servidor, se de algum modo eles colocarem as mãos na chave.