¿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.


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.


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

¿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

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.


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

0

Espero que esto pueda ayudar.

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

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).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.