Quais são as configurações para corrigir o erro vsftpd “500 OOPS: não é possível alterar o diretório”?


13

Minha pergunta é: quais configurações eu preciso alterar e / ou comandos para executar para permitir que eu entre no meu sistema vsftpd?

Estou recebendo esse erro, quando faço login usando ftp em vez de sftp:

Name (localhost:dbadmin): dbadmin
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/dbadmin
Login failed.
ftp> 

Isso funciona ao fazer login usando sftp@, mas meu servidor está protegido por um firewall e preciso fazer o login usando ftp e sftp.

Venho analisando algumas postagens sobre o erro "OOPS", mas até agora não tive sorte em fazer login.

Aqui estão algumas informações sobre meu sistema e configurações:

Estou executando o CentOS 6.4.

iptables e ip6tables estão parados e desativados.

Meu diretório pessoal está protegido por 700, e eu tentei 750, apenas para ver se isso fez alguma diferença. Isso não aconteceu.

Aqui estão as linhas ativas em /etc/vsftpd/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=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Meu nome de login não está na lista de usuários.


Até eu enfrentei o mesmo problema.> Tente alterar o acesso ao 775, funcionou para mim.

Caso o problema ainda ocorra mesmo que você tenha desativado o selinux, verifique novamente as permissões do seu diretório. O seu usuário ftp realmente tem direitos nessa pasta? ou Algum bit setgid está definido no pai dessa pasta? Um bit na pasta pai pode causar um problema, se você tentar criar uma nova pasta abaixo.
Chatchai Mao

Respostas:


10

Execute este comando, sem necessidade de reiniciar nenhum serviço e servidor:

# setenforce 0

Para verificar o status do SELinux:

# getenforce

ou

edite o arquivo /etc/sysconfig/selinuxpara incluir

SELINUX=disabled

Fazer isso exigirá uma reinicialização.


3
É interessante que eu recebi uma votação de drive-by na mesma resposta há um ano e meio atrás.
Octopusgrabbus

7

Embora a desativação do SELinux SELINUX=disabledresolva o problema, isso não seria aconselhável. Você pode permitir que o usuário ftp acesse seu diretório pessoal configurando o valor booleano do SELinux ftp_home_direxecutando o seguinte comando:

setsebool -P ftp_home_dir=1

Os ticks anteriores são necessários ou resultam da formatação em linha e em bloco de códigos / comandos?
Anthon

Não, os backticks não são necessários.
suprjami

essa deve ser a melhor resposta para resolver o problema, para evitar diminuir o nível de segurança de todo o sistema sem o SELinux.
Tomofumi 15/05

Ftp_home_dir booleano não está definido?
Exlord 21/01

3

você sempre pode permitir ao daemon FTP acesso total a todos os arquivos executando

setsebool -P allow_ftpd_full_access 1

2

Desativei o selinux seguindo estas instruções aqui . Consegui fazer login sem usar o sftp.

Para desativar permanentemente, editei /etc/selinux/confige configurei

SELINUX=disabled

Após a reinicialização, consegui efetuar login normalmente.


2
Desabilitar o SELinux é uma etapa de solução de problemas para determinar se o SELinux é a causa do problema, não uma solução final. Depois de determinar a causa do SELinux, você deve examinar suas negações do AVC e determinar qual booleano precisa alterar ou criar uma política personalizada com as ferramentas do SELinux. Desabilitar o SELinux permanentemente não é uma boa ideia.
suprjami

0

Provavelmente, o usuário não tem privilégios de execução em sua pasta pessoal. Execute:

chmod +x /home/user

ou,

chmod 700 /home/user

0

Espero que isso possa ajudar.

local_root=/var/www/ftp/$USER
user_sub_token=$USER

1
Bem-vindo ao site e obrigado por sua contribuição. Você se importaria em acrescentar mais explicações sobre como (ou seja, por qual mecanismo) sua resposta resolve o problema original? Isso pode dar a outras pessoas que enfrentam um problema semelhante mais informações sobre o motivo de terem esse problema em primeiro lugar.
AdminBee 24/01

-1

Correr setenforce 0como outra resposta sugerida não funcionou para mim.

O seguinte comando resolveu o problema:

chmod -R 755 /home/dbadmin

(Anteriormente, o diretório / home / dbadmin tinha 700 permissões.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.