O usuário do Proftpd não pode gravar / excluir no diretório inicial

2

Estou tentando configurar um usuário no centos que pode ler / gravar / excluir / etc arquivos no diretório / var / www / html. Com alguma ajuda aqui, consegui que o usuário consiga fazer logon e visualizar arquivos, mas agora eles não podem fazer upload / excluir, etc.

Eu criei um usuário 'ftpuser' com um UID / GID de 500, um shell / bin / sh válido e um diretório inicial de / var / www /

Mudei o proprietário de / var / www / html para ftpuser.ftpuser [& tentou 0777ing também]

Esse usuário deve ser capaz de ler / escrever / del arquivos no diretório / var / www / html /.

aqui está a configuração do proftpd:

ServerName                      "ProFTPD server"
ServerIdent                     on "FTP Server ready."
ServerAdmin                     root@localhost
ServerType                      standalone
DefaultServer                   on
VRootEngine                     on
#DefaultRoot                    ~ !adm
DefaultRoot                     /var/www/
VRootAlias                      /etc/security/pam_env.conf etc/security/pam_env.conf
AuthPAMConfig                   proftpd
AuthOrder                       mod_auth_pam.c* mod_auth_unix.c
#PersistentPasswd               off
UseReverseDNS                   off
User                            nobody
Group                           nobody
MaxInstances                    20
UseSendfile                     off
LogFormat                       default "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth    "%v [%P] %h %t \"%r\" %s"

# Global Config - config common to Server Config and all virtual hosts
# See: http://www.proftpd.org/docs/howto/Vhost.html
<Global>
  Umask                         022
  AllowOverwrite                yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>
</Global>

<Directory /var/www>
        AllowOverwrite          yes
        <Limit ALL>
                AllowAll
        </Limit>
</Directory>

<Limit LOGIN>
AllowUser ftpuser
DenyALL
</Limit>

Eu não sei porque isso não funciona. Alguém vê o que estou fazendo errado?

    
por Sean Kimball 10.12.2013 / 00:31

1 resposta

1

Parece que o SELinux entrou no seu caminho aqui. Se você não quiser que o SELinux impeça o FTP de gravar arquivos em qualquer parte do sistema, você precisa ativar o booleano allow_ftpd_full_access. Primeiro de tudo, verifique se ele está ativado ou desativado no momento:

getsebool allow_ftpd_full_access

Se ele disser que está desativado, ative-o com este comando (pode demorar um minuto ou mais para ser aplicado em todo o sistema, por isso seja paciente):

setsebool -P allow_ftpd_full_access=1

Além disso, como você configurou o homedir do usuário para / var / www, também será necessário definir a configuração ftp_home_dir como Ativada.

setsebool -P ftp_home_dir=1

Quando você define o homedir, o contexto de segurança user_home_t provavelmente também foi definido em / var / www. Defina-o como algo mais público, como httpd_sys_content_t ou public_content_rw_t . Você pode usar chcon para isso.

chcon -R -t httpd_sys_content_t /var/www

Reinicie seu servidor FTP depois de aplicar essas configurações e você deve estar pronto.

Veja esta documentação se quiser informações mais aprofundadas.

    
por 29.03.2014 / 14:08