Abra /etc/selinux/config
Altere selinux=enforcing ou permissive para desativado.
Lembre-se de reiniciar o servidor!
Claro, você também precisa determinar as seguintes questões:
1. O login do usuário está restrito pelo vsftpd. Por exemplo, o nome de usuário está em /etc/ftpusers e o login está bloqueado?
2. A opção de autenticação pam está ativada em vsftpd.conf (muitas vezes cometo erros quando compilo e instalo sozinho) (veja se há pam_service_name=ftp ou vsftpd em vsftpd.conf. Depende de qual deles é
Quem está no arquivo de serviço /etc/pam.d do módulo PAM O meu é ftp e sua configuração é a seguinte:
#%PAM-1.0
autenticação necessária /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
autenticação necessária /lib/security/pam_unix.so shadow nullok
autenticação necessária /lib/security/pam_shells.so
conta necessária /lib/security/pam_unix.so
sessão necessária /lib/security/pam_unix.so
Se alguns usuários em /etc/ftpusers forem negados
3. As permissões das pastas relevantes estão corretas?
Em relação à questão de "alguns usuários locais não conseguem fazer login no vsftpd, mas alguns conseguem",
Nenhuma das contas locais existentes no sistema pode efetuar login. A configuração do meu arquivo /etc/vsftpd/vsftpd.conf é a seguinte:
local_enable=SIM
write_enable=SIM
chroot_local_user=SIM
pam_service_name=vsftpd
/etc/pam.d/vsftpd existe e é normal.
A mensagem de erro ao fazer login é a mesma:
500 OOPS: não é possível alterar o diretório:/home/xxxx
Falha no login.
421 Serviço não disponível, servidor remoto encerrou a conexão
Seus diretórios pessoais são todos /home/xxxx. As permissões de /home e /home/xxxx são ambas 755.
Nenhuma das contas acima pode ser logada através de FTP. Elas são comumente usadas e podem ser logadas usando shell.
Criei uma nova conta usr1
# useradd -G teste -d /tmp/usr1 usr1
Pode fazer login via FTP, e sua home é /tmp/usr1, que está na partição /. Montei /home em /dev/hda9.
#montar
/dev/hdb1 on/digite ext3 (rw)
/dev/hda9 em /home digite ext2 (rw)
Então, eu acho: é por causa da partição/home que "contas cujo diretório inicial está na partição/home" não podem fazer login?
Para verificar a suposição acima, tentei criar outra conta
useradd -G teste -d /home/usr3 usr3
As permissões de /home e /home/usr3 são todas 755.
Falha no login do FTP usr3.
500 OOPS: não é possível alterar o diretório:/home/usr3
Falha no login.
421 Serviço não disponível, servidor remoto encerrou a conexão
Neste ponto, acho certo que é devido à partição /home que a "conta cujo diretório inicial está na partição /home" não pode efetuar login.
Artigo de referência:
Terminei minha segunda atualização para o Fedora Core 4. Nem tudo foi resolvido ainda com a construção, é claro, mas uma coisa é certa: muita coisa aconteceu com o RedHat que eu conhecia antes.
Devo dizer que, de todas as mudanças, para mim a adição mais agradável são as novas extensões do SELinux. Para obter informações detalhadas sobre as razões e a teoria do SELinux, leia A inevitabilidade da falha: a suposição falha de segurança em ambientes de computação modernos.
Quanto mais trabalho com o SELinux, mais percebo que preciso saber sobre ele e como exatamente ele faz todas as suas coisas. Certamente muda coisas relacionadas a usuários, diretórios e acesso. À medida que estou começando a aprender, tenho certeza. Estou fazendo as coisas da maneira mais difícil. :)
A principal diferença, até agora, para mim, no SELinux da Red Hat é a maneira como o ftp é tratado, o que ainda é ótimo. No entanto, ele parece ser projetado para ser executado como um daemon em vez de invocado via xinet.d. você pega uma cópia de trabalho do arquivo xinet.d para vsftpd e pode invocá-lo por meio do wrapper xinet.d. Fiz minha primeira atualização de servidor dessa maneira. O atual que estou tentando como um daemon. dos recursos que o wrapper xinet.d traz, e ainda pode retornar a ele.
De todos os problemas que vi, o mais notável é se você deseja ativar o diretório chroot fora do /home/xxx vsftpd normal.
500 OOPS: não é possível alterar o diretório: /mnt/xxxxx
Consegui usar o FTP se fiz login com uma conta com um diretório em/home, mas depois de definir uma conta de usuário para ter uma unidade inicial fora de/home (neste caso, em um disco secundário montado), o vsftpd vomita o acima .
Encontrei informações na NSA que indicam que você pode desativar a proteção SELinux do daemon FTP.
setsebool -P ftpd_disable_trans 1
Isso parece um pouco drástico. Certamente funciona por enquanto.
Acho que, em última análise, o problema reside nas políticas, mas como as políticas do SELinux são novas para mim, levará algum tempo até que tudo seja resolvido. À medida que passo o tempo com as novas extensões do SELinux no Fedora Core 4, manterei vocês atualizados sobre meus pensamentos. e lições de configuração.
Solução:
# setsebool ftpd_disable_trans 1
# reinicialização do serviço vsftpd
Eu uso o FC4 e tentei o método do seu post anterior e foi resolvido imediatamente. Portanto, pode-se determinar que a causa está no SELinux.