¿Cuáles son las configuraciones para corregir el error vsftpd "500 OOPS: no se puede cambiar el directorio"?

13

Mi pregunta es ¿qué configuración necesito cambiar y / o comandos para ejecutar para permitirme iniciar sesión en mi sistema vsftpd?

Recibo este error cuando inicio sesión usando ftp en lugar de sftp:

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

Esto funciona al iniciar sesión usando sftp@, pero mi servidor está detrás de un firewall, y necesito poder iniciar sesión usando ftp y sftp.

He estado mirando bastantes publicaciones sobre el error "OOPS", pero hasta ahora no he tenido suerte al iniciar sesión.

Aquí hay información sobre mi sistema y mi configuración:

Estoy ejecutando CentOS 6.4.

iptables e ip6tables se detienen y deshabilitan.

Mi directorio de inicio está protegido 700, y he probado 750, solo para ver si eso hizo la diferencia. No lo hizo.

Aquí están las líneas activas en /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

Mi nombre de usuario no está en la lista de usuarios.

octopusgrabbus
fuente
Incluso me enfrenté al mismo problema ..> Intente cambiar el acceso a 775, funcionó para mí.
En caso de que el problema continúe aunque haya desactivado selinux, vuelva a verificar los permisos de su directorio. ¿Su usuario ftp realmente tiene derechos en esa carpeta? o ¿Hay algún bit setgid establecido en el padre de esa carpeta? Un bit 's' en la carpeta principal puede causar un problema, si intenta crear una nueva carpeta debajo.
Chatchai Mao

Respuestas:

10

Ejecute este comando, no es necesario reiniciar ningún servicio y servidor:

# setenforce 0

Para verificar el estado de SELinux:

# getenforce

o

edite el archivo /etc/sysconfig/selinuxpara incluir

SELINUX=disabled

Hacerlo requerirá un reinicio.

Mitter
fuente
3
Es interesante que obtuve un voto negativo por casi la misma respuesta hace un año y medio.
octopusgrabbus
7

Aunque deshabilitar SELinux by SELINUX=disabledresolverá el problema, esto no sería aconsejable. Puede habilitar al usuario ftp para acceder a su directorio de inicio configurando el valor booleano SELinux ftp_home_direjecutando el siguiente comando:

setsebool -P ftp_home_dir=1
Indika K
fuente
¿Son necesarios los ticks posteriores, o el resultado del formato en línea y en bloque de código / comandos?
Anthon
No, los backticks no son necesarios.
suprjami
Esta debería ser la mejor respuesta para resolver el problema, para evitar reducir el nivel de seguridad de todo el sistema sin SELinux.
Tomofumi
¿Booleano ftp_home_dir no está definido?
Exlord
3

siempre puede permitir que el demonio FTP tenga acceso completo a todos los archivos ejecutando

setsebool -P allow_ftpd_full_access 1
Bee Kay
fuente
2

Inhabilité selinux siguiendo estas instrucciones aquí . Pude iniciar sesión sin usar sftp.

Para deshabilitar permanentemente, edité /etc/selinux/configy configuré

SELINUX=disabled

Después del reinicio, pude iniciar sesión normalmente.

octopusgrabbus
fuente
2
Deshabilitar SELinux es un paso de solución de problemas para determinar si SELinux es la causa del problema, no una solución final. Una vez que haya determinado que SELinux es la causa, debe analizar sus denegaciones de AVC y determinar qué booleano necesita cambiar, o hacer una política personalizada con las herramientas de SELinux. Deshabilitar SELinux de forma permanente no es una buena idea.
suprjami
0

Probablemente el usuario no tiene privilegios de ejecución en su carpeta de inicio. Realizar:

chmod +x /home/user

o,

chmod 700 /home/user
sharpy1064
fuente
0

Espero que esto pueda ayudar.

local_root=/var/www/ftp/$USER
user_sub_token=$USER
Gemelos desaparecidos
fuente
1
Bienvenido al sitio y gracias por su contribución. ¿Le importaría agregar más explicaciones sobre cómo (es decir, por qué mecanismo) su respuesta resuelve el problema original? Esto podría dar a otros que enfrentan un problema similar más información sobre por qué tienen este problema en primer lugar.
AdminBee
-1

Correr setenforce 0como otra respuesta sugerida no funcionó para mí.

El siguiente comando resolvió el problema:

chmod -R 755 /home/dbadmin

(Anteriormente, el directorio / home / dbadmin tenía 700 permisos).

pacoverflow
fuente