Um comando pode ser executado sobre o ssh com um usuário nologin?

8

Se um usuário tiver loginShell=/sbin/nologin , ainda é possível

ssh user@machine [command]

assumindo que o usuário possui chaves ssh apropriadas em seu diretório home que podem 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 seu uso através de 'sudo -u'), e estou querendo saber se este é um curso razoável .

    
por Centimane 10.02.2015 / 14:32

3 respostas

11

Definindo /sbin/nologin como o shell do usuário (ou /bin/false ou /bin/true , que são quase equivalente ) proíbe o usuário de efetuar login para executar qualquer comando. O SSH sempre invoca o shell de login do usuário para executar comandos, portanto, é necessário definir o shell de login para um que seja capaz de executar alguns comandos.

Existem vários shells restritos que permitem que os usuários executem apenas alguns comandos. Por exemplo rssh e scponly ambos são shells que permitem ao usuário executar alguns comandos predefinidos (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?

    
por 10.02.2015 / 23:10
1

Parece que a resposta é não.

ssh user@machine [command]

com chaves ssh no lugar só resulta em:

This account is currently not available

ao invés do comando em execução, parece que vou ter que dar acesso ao bash.

    
por 10.02.2015 / 18:07
-4

Eu não sei se isso é possível (deve ser fácil de testar), mas há um recurso que provavelmente responde à sua pergunta de uma certa maneira e, de qualquer forma, resolve o seu problema.

Você pode adicionar um comando à linha de chave em authorized_keys . Nesse caso, este comando é executado, nada mais. Suponho que isso funcione com /sbin/nologin , pois o shell deve ser ignorado de qualquer maneira.

Mas você precisaria de uma chave diferente para cada comando que você permitir.

    
por 10.02.2015 / 14:43