Respostas:
Para ser pedante, não será ctrl + c, mas SIGHUP
(mais perto de ctrl + d) que mata o aplicativo.
Você pode colocar essencialmente o que quiser no shell do usuário /etc/passwd
. Simplesmente substitua o padrão na linha de senha do usuário (provavelmente /bin/bash
) por outro programa. Esse programa pode ser um script, como /usr/bin/tail_log_file
, com este conteúdo, de propriedade de root: root, com umode 0755:
#!/bin/rbash
tail -f /path/to/logfile
Você pode usar outro intérprete que não seja o rbash, mas é recomendável usar um shell restrito nesses casos.
Para ser extremamente pedante, adicione o caminho do script /etc/shells
, mas geralmente acho que funciona de qualquer maneira.
Lembre-se também de que o usuário pode colocar o script em segundo plano ou usar algumas opções ( ssh username@host bash
) e ainda adquirir um shell. Se você deseja restringir o usuário dessa maneira, boas permissões do sistema de arquivos são a única solução real.
/etc/shells
é permitir que os usuários que possuem outra coisa como shell definam seu shell para isso; o superusuário ( root
) sempre pode alterar o shell de qualquer pessoa para o que quiser.
/etc/shells
pois isso permitiria ao usuário alterar seu shell (porque /usr/bin/tail_log_file
seria considerado um "shell irrestrito")!
Você pode configurar o ssh para executar um comando de sua escolha ao fazer login usando a autenticação de chave pública. Para fazer isso, gere um par de chaves:
djs@sardinia:~$ ssh-keygen -f restricted-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in restricted-key.
Your public key has been saved in restricted-key.pub.
The key fingerprint is: b1:8f:26:47:c2:c5:f2:8d:ed:a0:c4:bd:9a:30:9d:08 djs@sardinia
[...]
restricted-key.pub
contém uma linha adequada para inserir no ~/.ssh/authorized_keys
arquivo do usuário :
ssh-rsa AAAA...UDz47Nl djs@sardinia
mas você pode adicionar um comando a isso, e o ssh executará esse comando ao fazer login com a chave:
command="tail -f /my/interesting/file" ssh-rsa AAAA...UDz47Nl djs@sardinia
Em seguida, o usuário pode usar o ssh na máquina ssh -i restricted-key
.