Permissão para escrita com VSFTPD e Centos 6.2

3

Eu tenho um servidor com centos 6.2 com httpd e vsftpd.

Eu tenho poucos sites em / var / www e eu quero adicionar um usuário FTP para cada site.

Meu diretório pessoal do user1 é / home / user1 e pode ler / gravar nele a pasta do ftp. (é o usuário que eu uso para ssh e quase tudo)

Eu fiz o user2, que é home / var / www / site2 e bash setting / bin / nologin (porque eu quero que seja apenas um usuário ftp)

Eu posso entrar no FTP com o usuário2 e baixar o arquivo, mas não posso fazer upload de arquivos ou mkdir ...

A permissão é:

para / var / www:

drwxrwxr-x. 13 root root 4096 Aug 21 14:08 .

para / var / www / site2:

drwxrwxrwx. 2 user2 user2 4096 Aug 21 14:35 site2

(o 777 foi apenas para testes ...)

Meu vsftpd.conf é:

 anonymous_enable=NO 
 local_enable=YES
 write_enable=YES 
 local_umask=022
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 xferlog_std_format=NO
 log_ftp_protocol=YES
 chroot_local_user=YES
 listen=YES
 pam_service_name=vsftpd
 userlist_enable=YES
 tcp_wrappers=YES
 banner_file=/etc/vsftpd/banner

Meus iptables estão parados para testes, então o problema não é meu firewall ...

O SELinux está ativado:

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Quando desabilitei, está funcionando! :) Como posso ativá-lo e manter meu vsftpd funcionando?

Agradecemos antecipadamente pela sua ajuda

    
por frank 22.08.2013 / 16:08

2 respostas

1

Quais são os direitos em / var / www / site2?

O usuário2 precisará de acesso de gravação a esse diretório no nível do sistema de arquivos. Por exemplo, o / var / www / site2 precisa ser algo como:

ls /var/www
<snip>
drxwr-xr-x user2  www-data     site2/

Verifique se o SELinux também está desativado

 setsebool -P allow_ftpd_full_access 1
    
por 22.08.2013 / 16:56
0

Eu não acho que garantir que o SELinux seja desativado seja a melhor abordagem para essa situação.

Você precisa de contexto como public_content_rw_t para permitir que o vsftp (etc) grave na pasta com o SELinux.

Portanto, defina o contexto e verifique com

chcon -t public_content_rw_t /var/www/site2
ls -ldZ /var/www/site2/

Em seguida, verifique o /var/log/audit.log para dicas, se você ainda falhar. Se você ainda tiver problemas de permissão negada, e eles estiverem logados em /var/log/audit.log , procure em audit2allow se puder ' t descobrir o que mais pode ajudar.

    
por 23.08.2013 / 22:18