Como faço para copiar arquivos para '/ var / www' com o WinSCP?

11

Quando tento colocar meus arquivos da web em /var/www no apache na minha instância do Ubuntu ec2, estou me dando um erro dizendo que não tenho permissão.

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

Como posso me dar permissão para fazer isso ou qual é a melhor maneira de copiar arquivos para /var/www com WinSCP?

    
por andrew 22.05.2011 / 00:02

5 respostas

14

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

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

O usuário 'ec2-user' é o usuário com o qual eu efetuo login.

Links potencialmente úteis

  • alestic.com : Usando o sudo, ssh, rsync nas Imagens Oficiais do Ubuntu para o EC2
  • apache.com : Lista de comandos
por 28.03.2013 / 03:02
9

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

A primeira maneira é alterar as permissões na pasta para permitir que qualquer pessoa escreva para ela. 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, configurar as 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 notar 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 para agrupar 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.

    
por 22.05.2011 / 09:15
1

no ec2 isso funciona para mim. Entre na caixa através do putty com o usuário "ec2-user" e use os comandos:

sudo root
chmod 777 <NAME_OF_FOLDER>

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

Agora deve ser capaz de escrever usando o WinScp.

    
por 04.11.2014 / 22:40
1

O tutorial a seguir funcionou para mim e fornece capturas de tela úteis. Fazer o login como um usuário regular com permissões sudo simplesmente exigiu o ajuste de algumas opções do WinSCP: link

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

Desmarque a autenticação Advanced / SSH / Authentication / try "keyboard interactive" para permitir Advanced / Environment / SCP Shell / Shell / Shell: sudo su - para fornecer permissões sudo para acessar os diretórios do servidor 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:

[WinSCP] Logging can be enabled from Logging page of Preferences dialog. Logging can also be enabled from command-line using /log and /xmllog parameters respectively, what is particularly useful with scripting. In .NET assembly, session logging is enabled using Session.SessionLogPath1).

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

This file MUST be edited with the 'visudo' command as root. Please consider adding local content in /etc/sudoers.d/ instead of directly modifying this file. See the man page for details on how to write a sudoers file.

Ao editar um arquivo sudoers (como root) por meio da linha de comando, o comando 'visudo' deve ser usado para abrir o arquivo, pois ele analisará o arquivo em busca de erros de sintaxe. Os arquivos /etc/sudoers.d/ são tipicamente de propriedade de root e chmoded com permissões mínimas. O arquivo padrão / etc / sudoers pode ser referenciado, já que deve ter automaticamente as 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

Documento WinSCP: link

With SCP protocol, you can specify following command as custom shell on the SCP/Shell page of Advanced Site Settings dialog:

sudo -s

[...]

Note that as WinSCP cannot implement terminal emulation, you need to have sudoers option requiretty turned off.

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 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 recomendou configurações de instância e qualquer atualização nos arquivos sudoer do servidor pode ser afetada e removida sem afetar outros usuários.

    
por 10.05.2017 / 04:11
0

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

Depois, você pode alterá-los com sudo chmod 666 /var/www e alterá-los novamente mais tarde, quando necessário.

Consulte man chmod e man sudo ao lado de outros manuais de permissão de arquivos na Internet para obter mais informações ...

    
por 22.05.2011 / 00:06