não pode usar o comando wget de um usuário que criei

0

plano de fundo

Eu adquiri uma caixa do Ubuntu na AWS e estava seguindo as instruções para instale um servidor mais importante. As coisas estavam indo bem até chegar a essa parte:

For the purposes of this guide we will assume this server has an IP address of 10.10.10.2 (note: i'm using local host instead ie 127.0.0.0)

  1. Create a user and group for running mattermost:

sudo useradd --create-home --user-group --system mattermost

  1. Change to the account of the new user:

sudo --user=mattermost --shell

  1. Change into the home of the new user:

cd

Download any version of the Mattermost Server by typing:

wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz

O último link deve ser substituído por este

link

que naturalmente pode ser facilmente baixado do chrome.

problema

Quando tento fazer o download desse arquivo da CLI:

wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz

Eu recebo o seguinte:

--2017-01-17 07:22:36-- https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz Resolving releases.mattermost.com (releases.mattermost.com)... 54.192.192.48, 54.192.192.69, 54.192.192.118, ... Connecting to releases.mattermost.com (releases.mattermost.com)|54.192.192.48|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-01-17 07:22:36 ERROR 403: Forbidden.

o que tentei

Neste momento, obviamente, eu não tenho uma senha para o usuário mattermost .. então eu saio do shell e dou a eles uma senha:

$ sudo passwd mattermost
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

mas quando eu pulo de volta para o shell mattermost e tento ser um cara inteligente:

$ sudo wget https://releases.mattermost.com/3.6.0/mattermost-team-3.6.0-linux-amd64.tar.gz
[sudo] password for mattermost:
mattermost is not in the sudoers file.  This incident will be reported.

Então, não sei exatamente o que fazer aqui. Por que preciso ser sudo para baixar um arquivo publicamente disponível?

nota: acabei de perceber que o mesmo erro acontece mesmo se eu estiver na raiz da caixa aws

    
por abbood 17.01.2017 / 08:55

2 respostas

3

Você tem dois problemas não relacionados.

"403 Proibido" é um erro do servidor da web. Você precisa corrigir seu URL.

Quando você executou wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz , obteve um erro 403: Forbidden . Este é um erro do servidor da web e não está relacionado à conta de usuário usada para fazer o download do arquivo.

Quando você tenta carregar uma página ou baixar um arquivo e especifica um URL incorreto, um erro 404: Not Found é o resultado mais comum. Mas um erro 403 pode ocorrer algumas vezes nessa situação, e isso parece ser o que está acontecendo aqui. Parece que, do comando que você executou e da saída de wget , como , você esqueceu de colocar os números da versão real na URL .

No meu sistema, posso obter exatamente o mesmo erro usando o URL com X.X.X em vez de um número de versão real:

ek@Io:~/Downloads$ wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
--2017-01-17 03:15:30--  https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
Resolving releases.mattermost.com (releases.mattermost.com)... 54.192.147.30, 54.192.147.18, 54.192.147.46, ...
Connecting to releases.mattermost.com (releases.mattermost.com)|54.192.147.30|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2017-01-17 03:15:32 ERROR 403: Forbidden.

E se eu usar o URL correto, funcionará:

ek@Io:~/Downloads$ wget https://releases.mattermost.com/3.6.0/mattermost-team-3.6.0-linux-amd64.tar.gz
--2017-01-17 03:09:50--  https://releases.mattermost.com/3.6.0/mattermost-team-3.6.0-linux-amd64.tar.gz
Resolving releases.mattermost.com (releases.mattermost.com)... 54.192.147.156, 54.192.147.30, 54.192.147.160, ...
Connecting to releases.mattermost.com (releases.mattermost.com)|54.192.147.156|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27221349 (26M) [application/x-gzip]
Saving to: ‘mattermost-team-3.6.0-linux-amd64.tar.gz’

mattermost-team-3.6.0-linux- 100%[==============================================>]  25.96M   106KB/s    in 2m 6s

2017-01-17 03:11:58 (212 KB/s) - ‘mattermost-team-3.6.0-linux-amd64.tar.gz’ saved [27221349/27221349]

(As URLs que funcionam e as que não funcionam são da sua postagem. Na verdade, eu não sei exatamente qual arquivo você precisa.)

O usuário mais importante não é um sudoer.

Nem todos os usuários podem executar programas como root (ou de forma alguma) com o comando sudo . O arquivo /etc/sudoers , ou um arquivo em /etc/sudoers.d , deve ser configurado para permitir que eles façam isso. Mais comumente, isso é obtido colocando o usuário em um grupo em que um desses arquivos permite executar comandos.

Em particular, para tornar um usuário um administrador em um sistema Ubuntu para que ele tenha permissão para executar qualquer comando como root usando sudo , adicione o usuário ao grupo sudo :

sudo usermod -aG sudo mattermost

Claro, você deve executar isso como um usuário que pode executar comandos como root com sudo já. (Você conseguiu executar sudo passwd mattermost , então sei que você tem pelo menos um desses usuários.)

Tenha em mente:

  • Você só deve fazer isso se realmente quiser que o usuário tenha potência total para fazer qualquer coisa. Eles terão o mesmo poder que você. Uma vez que você tenha decidido que quer isso, você deve ir em frente e simplesmente adicionar o usuário ao grupo sudoers . Normalmente, não há necessidade de realmente editar os arquivos de configuração para sudo - eles já estão configurados para reconhecer o grupo sudo como conferindo poder administrativo.
  • Se, por algum motivo, você optar por editar /etc/sudoers ou criar / editar um arquivo em /etc/sudoers.d , é importante usar o utilitário visudo para fazer isso, porque ele executa uma verificação de sintaxe para garantir suas alterações serão entendidas por sudo . Se sudo visualizar uma sintaxe incorreta em um arquivo sudoers, ela se recusará completamente a funcionar . Para servidores aos quais você só tem acesso remoto, isso pode impedi-lo do sistema.

Por fim, é muito raro você ter que baixar manualmente um arquivo com wget como root. Nesse caso, você não o fez - o erro era uma URL incorreta e a mensagem "proibido" era do servidor da Web. Portanto:

  • Se esta é a única razão pela qual é necessário usar o sudo , você provavelmente não deve dar à conta do usuário essas habilidades, porque não há necessidade.
  • Mesmo que o mais importante seja realmente um administrador, eles devem executar ações como eles mesmos (sem sudo ) em vez de como raiz (com sudo ) exceto quando há uma razão clara para fazer o último.
por Eliah Kagan 17.01.2017 / 09:30
0

Isso é na verdade dois erros separados:

  1. O comando wget não está do seu lado, mas do lado do servidor, ou seja, você não tem acesso a esse arquivo no servidor da web (o 403 significa que o acesso do cliente é negado). Agora, quando eu testar o wget https://releases.mattermost.com/3.6.0/mattermost-team-3.6.0-linux-amd64.tar.gz , talvez seja apenas uma coisa temporária. Mas ainda assim, um erro 403 é que o servidor não permite que você acesse o URL.

  2. A questão do sudo é uma história completamente diferente. Quando você instala o Ubuntu, você cria um usuário durante o processo de instalação. Esse usuário é o único capaz de sudo, até que você conceda acesso a outros usuários. Para permitir que um usuário específico acesse o comando sudo , execute o comando visudo como raiz, ou seja, sudo visudo e edite o arquivo de maneira correspondente. Alguns exemplos de como conceder acesso a usuários específicos podem ser encontrados aqui .

por Simon Arons 17.01.2017 / 09:42