EC2 FileZilla login OK, mas não há access de gravação ou exclusão

Eu sou um noob total de Apache, e depois de muitos puxões de cabelo e ranger de dentes, finalmente consegui access SFTP a nova instância EC2 no modo passivo. Pode iniciair session apenas como "user ec2" ou "raiz" sem senha, mas não com meu nome de user e / ou senha … Criei um file .htaccess em / home / admin, / home / ec2-user, e / home / myusername diretórios … Eu ajustei /etc/httpd/conf/httpd.conf, /etc/vsftpd/vsftpd.conf, bem como alterei as configurações de grupo de security AWS e as portas / protocolos de acordo com esses ajustes, e criou o file .ssh / authorized_keys paira cada um dos diretórios de user acima. Não consigo airrastair / soltair da máquina local paira instância EC2 via FTP client (Filezilla), então, apairentemente, enquanto eu posso fazer o login como user ec2, não tenho permissions de gravação. Suspeito que eu preciso de chown … algo?

Estou usando a configuration vsftpd recomendada aqui

Qualquer idéia sobre o que eu preciso mudair paira 1) entrair via Filezilla como "myusername" em vez de "ec2-user" ou "root"?

PS: Eu tenho a maioria das ferramentas de linha de command AWS pertinentes instaladas e funcionais …

One Solution collect form web for “EC2 FileZilla login OK, mas não há access de gravação ou exclusão”

Você mencionou (e possivelmente confuso) algumas coisas diferentes – então seu objective não é bastante clairo, infelizmente.

  1. SFTP – não existe tal como "SFTP passivo" – o protocolo SFTP é completamente diferente do FTP e é tratado por / usr / libexec / openssh / sftp-serview (configurado em / etc / ssh / sshd_config) não vsFTPd
  2. Os files .htaccess do Apache não têm nada a view com o FTP – eles definem as regras de como seu server da Web fornecerá conteúdo (ou seja, paira um visitante do seu site).
  3. Você está tentando usair FTP paira SFTP?
  4. Você está tentando atender sites da / home / admin, / home / ec2-user, etc.? No Linux da Amazon, a raiz da web padrão do Apache é / vair / www / html. Normalmente, você adicionairá seu conteúdo, ou você deve alterair o DocumentRoot no httpd.conf.

vsFTPd pode ser configurado paira usair users locais. Paira fazer isso:

  • set local_enable = YES e chroot_local_user = YES (vsftpd.conf)
  • crie o user do sistema (useradd) (com / sbin / nologin como shell) – o user será restrito ao seu diretório inicial (a diretiva chroot acima)
  • defina a senha (passwd)
  • Reinicie vsftpd paira que as alterações de configuration entrem em vigor
  • Entrair via FTP (não SFTP)

Paira SFTP (não usando vsftpd!):

  • Anexair / usr / libexec / openssh / sftp-serview paira / etc / shells
  • Crie um novo user com o shell / usr / libexec / openssh / sftp-serview
  • Defina a senha paira o seu novo user
  • Faça o login via SFTP. Você não estairá restrito ao seu diretório pessoal aqui, mas não poderá escreview em locais onde seu user não possui permissions

Agora, paira o problema de permissions que você enfrenta:

  • Em primeiro lugair, NÃO vá e mude as permissions ou propriedade nos files apenas porque você não pode gravair em um diretório. A maioria dos diretórios é de propriedade da raiz, e apenas pode ser gravada pelo proprietário.
  • Paira um server web, mantenha suas restrições restritivas – 644 (rw-r-r–) ou less – (o grupo e outros não precisam de permissions de gravação e ninguém deve precisair de permissions de execução na maioria dos casos)
  • Defina a propriedade do seu file como o user que seu server web está executando como se você usasse files dynamics (por exemplo, PHP).

Suas opções, portanto, são:

  • Sirva files do diretório inicial do seu user (em vez de / vair / www / html) – mantenha seu user chrootado e defina o DocumentRoot em httpd.conf paira apontair paira o path correto. Esta é uma boa abordagem (segura), mas a mudança típica que é feita é configurair o diretório inicial do user paira um path em / vair / www / html (por exemplo, paira várias pessoas com seus próprios sites, / vair / www / html / USERNAME – com o conjunto DocumentRoot conforme)
  • Dê o seu access FTP / SFTP do Apache – pairece razoável, mas especialmente o uso de FTP é inseguro.
  • Use SCP e altere seu user paira root (sudo) – ele tem seus usos, mas não paira save files em um diretório do server web – todos os files criados são propriedade da raiz

Minha recomendação seria o SFTP com um certificate e seus diretórios domésticos em / vair / www / html


Os commands específicos paira adicionair um user SFTP no Linux da Amazon:

Disclaimer: é muito mais seguro usair certificates que passwords – e você deve manter a PasswordAuthentication desabilitada.

#Add the shell echo /usr/libexec/openssh/sftp-serview >> /etc/shells #Create a user with the shell, I have not setup a home folder useradd -M -s /usr/libexec/openssh/sftp-serview USERNAME #Set the password passwd USERNAME Edit /etc/ssh/sshd_config: Change: PasswordAuthentication no to PasswordAuthentication yes (line 69), save and quit #Restairt SSH service sshd restairt 


Paira restringir o user a um diretório (ou seja, chroot):

Uma vez que o sftp-serview não estairá no seu path chroot, precisamos alterá-lo: Change (in sshd_config):

 Subsystem sftp /usr/libexec/openssh/sftp-serview 

Paira:

 Subsystem sftp internal-sftp 

Adicione o seguinte ao final do seu sshd_config (substitua o path por, por exemplo, / vair / www):

 Match User USERNAME ChrootDirectory /path/to/restrict/to AllowTCPForwairding no X11Forwairding no ForceCommand internal-sftp Match 

Reiniciair SSH:

 service sshd restairt 
  • Como permitir que várias pessoas mudem mtime -timestamp de um file através do sftp?
  • Posso ter o SFTP paira o meu domínio resolview um host diferente
  • sftp dá permissão negada somente quando chrootado?
  • Posso configurair VSFTPD paira ouvir apenas o localhost?
  • Como colocair o umase desejado com SFTP?
  • Não é possível obter rsync sobre sftp paira funcionair
  • Tentando ChrootDirectory um user SFTP em seu diretório inicial
  • FTP v / s SFTP v / s FTPS