Eu tenho um usuário no meu sistema Linux que só tem permissão para usar o SSH para scp
, sftp
e rsync
, mas não é permitido ter uma sessão de shell em uma sessão SSH. Eu quero saber uma maneira segura de configurar a restrição.
Uma resposta típica é restringir o shell do usuário, configurando em /etc/passwd
o shell padrão para rssh
. No entanto, alterar o shell padrão aparentemente também afeta outros aplicativos que dependem da variável de ambiente SHELL. Por exemplo, no Fedora 22 mais recente, parece afetar o comando less, que invoca o shell padrão, para que o usuário receba um aviso estranho de rssh
quando ele executar o comando less (por exemplo, ao ser processado por outro usuário, não conectado através do SSH). Poderia haver outros programas afetados de maneiras maiores e mais dramáticas.
A definição de authorized_keys do usuário para restringir a execução do programa não funciona, porque ele pode usar sftp
/ scp
para alterá-lo para algo não restritivo.
Então, qual é outra maneira de restringir o acesso do usuário?