Se um usuário tiver loginShell=/sbin/nologin
, ainda é possível
ssh user@machine [command]
supondo que o usuário tenha chaves ssh apropriadas em seu diretório pessoal que possam ser usadas para autenticar?
Meu objetivo é manter o usuário como um nologin, mas ainda capaz de executar comandos em algumas outras máquinas na rede (semelhante ao uso por meio de 'sudo -u'), e estou me perguntando se esse é um curso razoável.
ssh
login
account-restrictions
Centimane
fonte
fonte
command
é executado em vez do shell de logon./sbin/nologin
como um shell. Se sua preocupação for a segurança da conta, desabilitar a autenticação de senha e usar chaves ssh é suficiente./sbin/nologin
, o usuário não poderá efetuar login ou executar comandos na máquina. os cronjobs podem ser executados como usuário esftp
podem ser configurados para abrir sessões, mas a abertura de um shell via ssh não acontecerá #Respostas:
Definir
/sbin/nologin
como o shell do usuário (ou/bin/false
ou/bin/true
, que é quase equivalente ) proíbe o usuário de efetuar login para executar qualquer comando. O SSH sempre chama o shell de logon do usuário para executar comandos, portanto, você precisa definir o shell de logon como um que seja capaz de executar alguns comandos.Existem vários shells restritos que permitem aos usuários executar apenas alguns comandos. Por exemplo rssh e scponly são ambos tais conchas que permitem ao usuário para executar alguns comandos pré-definidos (tais como
scp
,sftp-server
,rsync
, ...). Veja também Restringir o acesso do usuário no linux e Você precisa de um shell para o SCP?fonte
Parece que a resposta é não.
com as teclas ssh no lugar, resulta apenas em:
em vez de executar o comando, parece que vou ter que dar acesso ao bash.
fonte
Não sei se isso é possível (embora deva ser fácil de testar), mas há um recurso que provavelmente responde à sua pergunta de uma certa maneira e, em qualquer caso, resolve o seu problema.
Você pode adicionar um comando à linha da chave
authorized_keys
. Nesse caso, este comando é executado, nada mais. Suponho que isso funcione,/sbin/nologin
pois o shell deve ser ignorado de qualquer maneira.Mas você precisaria de uma chave diferente para cada comando que você permitir.
fonte
authorized_keys
é executado pelo shell de login; portanto, não, isso não funciona (não sem a configuração não trivial adicional). (Como voto negativo é “estúpido” por uma resposta errada? Por favor, respeite os outros .)