Como copio arquivos para o `/ var / www` com o WinSCP?

11

Quando tento colocar meus arquivos da web /var/wwwno apache na minha instância do ec2 Ubuntu, está me dando um erro informando que não tenho permissão.

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

Como me permito fazer isso ou qual é a melhor maneira de copiar arquivos no /var/wwwWinSCP?

andrew
fonte

Respostas:

15

Eu estava recebendo o mesmo erro no WinSCP. Uma solução é alterar a propriedade da pasta '/ www /' usando chown. Dessa forma, você pode tornar o usuário com quem você faz login no proprietário, em vez de 'root' ser proprietário. Estou usando uma instância do Amazon Linux em vez do Ubuntu, mas este comando funcionou para mim:

sudo chown -R -v ec2-user /var/www/

O usuário 'ec2-user' é o usuário com quem logon.

Links potencialmente úteis

  • alestic.com : Usando sudo, ssh, rsync nas imagens oficiais do Ubuntu para EC2
  • apache.com : Lista de comandos
chrisfargen
fonte
Seus pedidos de ajuda como parte de uma resposta à pergunta de outra pessoa provavelmente não receberão respostas ou comentários úteis. Para isso, é melhor você fazer sua própria pergunta com os detalhes precisos de que precisa.
killermist
9

Habilite permissões de gravação para o usuário efetuar login através do WinSCP. Existem duas maneiras de fazer isso.

A primeira maneira é alterar as permissões na pasta para permitir que alguém escreva nela. Esta não é a melhor segurança.

chmod 777 /var/www


A segunda maneira é adicionar seu usuário ao grupo que possui o diretório e, em seguida, definir permissões para o grupo gravar no diretório.

Descubra quem é o proprietário do diretório:

ls -l /var | grep www

Você verá algo como: drwxr-x --- 9 www-data www-data 4096 14 de julho de 2009 www O importante a ser observado são os dois nomes raiz e raiz. Nesse caso, o proprietário do diretório é www-data e o grupo do diretório é www-data. Então agora você adicionará seu usuário ao grupo www-data.

usermod -G www-data user

Agora basta adicionar a permissão de gravação ao grupo.

chmod 770 /var/www

Agora

ls -l /var | grep www

deve retornar: drwxrwx --- 9 www-data www-data 4096 14 de julho de 2009 www

Com isso, você poderá gravar no diretório, sem abrir privilégios de gravação para todos.

Chris Ting
fonte
1
leve correção de exatidão - sudo chmod 777 / var / www - sudo usermod -G www-data (nome de usuário) - sudo chmod 770 / var / www - Pode funcionar dependendo de quem você é no seu exemplo, mas o 'sudo' deve funcionar não importa quem você é (assumindo que seu login está em / etc / sudoers para root / admin, é claro).
bshea
1

no ec2 isso funciona para mim. entre na caixa via massa com o usuário "ec2-user" e use os comandos:

sudo root
chmod 777 <NAME_OF_FOLDER>

Nota: isso concede acesso de gravação para todos os usuários.

Agora deve ser capaz de escrever usando o WinScp.

céu azul
fonte
1

O tutorial a seguir funcionou para mim e fornece capturas de tela úteis. Para fazer o login como um usuário comum com permissões sudo, é necessário ajustar algumas opções do WinSCP: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Defina o protocolo Session / File como: SCP, digite ip do host / instância, porta - geralmente 22 e nome de usuário comum. Digite as credenciais da senha se o login exigir. Adicione o arquivo de chave privada correspondente do usuário em Avançado / SSH / Autenticação.

Desmarcar Avançado / SSH / Autenticação / tentativa de autenticação "teclado interativo" deve permitir Avançado / Ambiente / Shell SCP / Shell / Shell: sudo su - para fornecer permissões de sudo para acessar diretórios de servidor da Web como um usuário não proprietário.


Atualização: 08/03/2017

O log do WinSCP pode ser útil para solucionar problemas.

winscp.net/eng/docs/logging:

O registro [WinSCP] pode ser ativado na página Registro da caixa de diálogo Preferências. O log também pode ser ativado na linha de comando usando os parâmetros / log e / xmllog, respectivamente, o que é particularmente útil com scripts. No assembly .NET, o log de sessão é ativado usando Session.SessionLogPath1).

Dependendo dos erros de conexão do WinSCP, algumas instalações de servidor podem precisar de uma diretiva adicionada ao arquivo (Ubunto, CentOS, outro servidor Linux) / etc / sudoers para não exigir TTY para um usuário especificado. Criar um arquivo em /etc/sudoers.d/ (usando uma ferramenta como Amazon Command Line Interface ou PuTTY) pode ser uma opção melhor do que editar / etc / sudoers. Algumas versões do / etc / sudoers recomendam:

Este arquivo DEVE ser editado com o comando 'visudo' como root. Por favor, considere adicionar conteúdo local em /etc/sudoers.d/ em vez de modificar diretamente esse arquivo. Consulte a página do manual para obter detalhes sobre como gravar um arquivo sudoers.

Ao editar um arquivo sudoers (como root) pela linha de comando, o comando 'visudo' deve ser usado para abrir o arquivo, pois ele analisará o arquivo quanto a erros de sintaxe. Os arquivos /etc/sudoers.d/ geralmente pertencem ao root e são modificados com permissões mínimas. O arquivo / etc / sudoers padrão pode ser referenciado, pois deve ter automaticamente permissões chmod recomendadas na instalação. por exemplo: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Links úteis:

  • Stackoverflow: stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

Fórum WinSCP: - winscp.net/forum/viewtopic.php?t=3046 - winscp.net/forum/viewtopic.php?t=2109

Doc do WinSCP: https://winscp.net/eng/docs/faq_su

Com o protocolo SCP, você pode especificar o seguinte comando como shell personalizado na página SCP / Shell da caixa de diálogo Configurações avançadas do site:

sudo -s

[...]

Observe que, como o WinSCP não pode implementar a emulação de terminal, você precisa ter a opção sudoers requiretty desativada.

As instruções no Ubuntu Apache / etc / sudoers recomendam adicionar diretivas ao /etc/sudoers.d em vez de editar o / etc / sudoers diretamente. Dependendo da instalação, adicionar uma diretiva ao /etc/sudoers.d/cloud-init também pode funcionar.

Pode ser útil criar um usuário de teste SSH com permissões sudo, seguindo as etapas fornecidas na documentação da instância para garantir que o usuário tenha as configurações de instância recomendadas e que quaisquer atualizações nos arquivos do sudoer do servidor possam ser efetuadas e removidas sem afetar outros usuários.

1keown
fonte
0

Você precisa dar ao usuário permissões de gravação, lembre-se das permissões anteriores usando stat /var/www.

Em seguida, você pode alterá-los sudo chmod 666 /var/wwwe alterá-los mais tarde, quando necessário.

Consulte man chmode man sudoao lado de outros manuais de permissão de arquivos na internet para obter mais informações ...

Tamara Wijsman
fonte