Estou permitindo a um amigo uma conta local na minha máquina, exclusivamente para o SCP. Posso especificar o shell de sua conta como /bin/true
, ou de qualquer outra forma, limitar a conta, enquanto ainda permito o SCP?
Estou permitindo a um amigo uma conta local na minha máquina, exclusivamente para o SCP. Posso especificar o shell de sua conta como /bin/true
, ou de qualquer outra forma, limitar a conta, enquanto ainda permito o SCP?
Respostas:
Você pode definir o shell desse usuário para rssh
ou scponly
, que são projetados exatamente para esse fim:
rssh é um shell restrito para uso com o OpenSSH, permitindo apenas scp e / ou sftp. Agora também inclui suporte para rdist, rsync e cvs.
O scponly é um 'shell' (tipo) alternativo para administradores de sistema que desejam fornecer acesso a usuários remotos para ler e gravar arquivos locais sem fornecer privilégios de execução remota.
Quando você executa o scp, o daemon OpenSSH dispara um scp
processo com a -f
opção Quando você executa o sftp, o daemon OpenSSH dispara um sftp-server
processo. Em qualquer um dos casos, o subprocesso é executado através do shell do usuário, de modo que o shell deve suportar pelo menos esses comandos, com uma sintaxe semelhante a Bourne. Qualquer shell no estilo Bourne fará, assim como o csh (acho que suas regras de citação são compatíveis o suficiente para o que sshd
usa). Rssh e scponly permitem esses comandos e nada mais. /bin/true
nem sequer executaria esses comandos.
/bin/false
ou outro programa que não faz nada, nem o scp nem o sftp funcionarão. Para ambos os comandos, o daemon SSH dispara um comando shell que executa um processo de servidor dedicado ( scp -f
ou sftp-server
). Ele precisa de um shell no estilo Bourne, ou pelo menos uma aproximação suficientemente próxima (como a rssh
que permite apenas esses poucos comandos).
Não você não. Como Gilles apontou, o rssh funciona muito bem para esse fim, assim como o scponly . Veja também a discussão nesta questão relacionada .
/bin/false
não funcionará, nem chmod 644 ksh .