Erro "Esta conta não está disponível no momento" ao tentar ssh

46

Ocorre um erro quando tento fazer a conexão SSH:

$ ssh -p 22 [email protected] 
This account is currently not available
Mert Özoğul
fonte

Respostas:

59

Você está recebendo o This account is currently not available.erro porque o shell do usuário www-dataestá definido como /usr/sbin/nologine por um motivo muito bom. Você não deve efetuar login www-data, pois é um usuário / grupo especial usado pelo servidor da Web, não destinado ao uso regular do shell.

EDIT : É uma idéia especialmente ruim para conceder sudodireitos www-data. Se o Apache foi projetado para ser executado com permissões de root, ele não teria seu próprio grupo. Ao fazer isso, você está criando enormes falhas de segurança. Você foi avisado.

kraxor
fonte
5
Isso não é muito construtivo. Que informações você acha que devo adicionar para melhorar esta resposta?
Kraxor # 13/15
4
O @kraxor está correto, mas se necessário, você pode fazer o login como root e alterar / usr / sbin / nologin em / etc / passwd para / bin / bash, e isso concederá a esse usuário acesso ao shell. Eu faço isso quando apenas executando um binário instantâneo como meu servidor da web. www-data é geralmente reservado para nginx / apache no ubuntu, portanto, o status no login.
engineerDave
4
@RyanNerd É sua escolha não "dar a mínima a um rato sobre a porcaria de segurança". A execução de tudo como root não é recomendada, mesmo dentro do Docker. É claro que você pode configurar o Apache para executar como root, ou adicionar um shell de login www-data, mas é como abrir uma garrafa de vinho quebrando a garrafa porque você é preguiçoso e descuidado para usar um parafuso de cortiça.
Kraxor # 23/16
@kraxor seu link para o docker está desatualizado. TUDO ainda pertence à raiz do Docker e ainda é um problema .
RyanNerd
Eu tenho um caso semelhante. Desejo executar o LibreOffice no modo decapitado, de forma que ele possa ser chamado por um script PHP para converter documentos e que possa gravar arquivos em disco como www-data, porque esses arquivos posteriormente precisam ser excluídos por www-data (parte do um script PHP) para limpá-los. Isso (iniciar um LibreOffice decapitado como usuário www-data) costumava funcionar em versões anteriores do Ubuntu, e eu entendo que isso é uma melhoria de segurança em relação a essas versões anteriores.
Ywarnier
57

Embora eu concorde com as outras pessoas que permitir o login através do SSH por meio do usuário www-data é geralmente uma má idéia, depois de fazer login com um usuário normal, pode ser útil executar vários comandos simultaneamente com as permissões definidas no www- usuário de dados. Nesse caso, pode-se executar

sudo su -l www-data -s /bin/bash

e você poderá acessar seus arquivos como o usuário www-data.

D. Scott Boggs
fonte
3
Muito útil para depurar permissões para um usuário de daemon / service
jmng 14/02
você acabou de salvar meu dia, obrigado! Eu tive problemas para iniciar o serviço perl-fcgi porque o script de inicialização não estava sendo usado.-s /bin/bash
Couitchy 04/06
-1

A primeira pergunta que eu teria que fazer é: o que você está tentando realizar fazendo isso?

O kraxor está 100% correto, você nunca deve poder fazer ssh no seu servidor usando o usuário Apache / Nginx. Fazer isso convida todo hacker com metade de uma célula cerebral ao seu servidor.

Se você precisar executar um script ou algum programa como esse usuário, tente sudo -u www-data yourscriptou temporariamente chownno arquivo para um usuário com privilégios de login. É apenas uma péssima idéia permitir a essa conta esse tipo de acesso.

TheStarvingGeek
fonte
6
Você deve saber que su -isso não funciona para contas com login desativado.
sorin 2/16
Qual conta está desativada? Não diz nada sobre a conta ser desativada
TheStarvingGeek
1
Bem tendo nologin no meio passwd desativado o login :)
Sorin
1
É uma conta de serviço não uma conta desativada, você pode executar comandos sob ele
TheStarvingGeek
Meu servidor não parece saber que @TheStarvingGeek distinção
LovesTha