VSFTPD, 553 No se pudo crear el archivo. – permisos?

He configurado vsftpd en Amazon EC2 con la AMI de Amazon Linux. Creé un usuario y puedo ahora me conecto con éxito a través de ftp. Sin embargo, si intento cargar algo, aparece el mensaje de error

553 Could not create file. 

Supongo que esto tiene que ver con los permisos, pero no «No sé lo suficiente para poder solucionarlo. Entonces, básicamente, ¿qué tengo que hacer para poder subir archivos?

Comentarios

  • Verifique la configuración de selinux. configure boolean allow_ftpd_full_access en ON
  • Tuve este problema porque no había suficiente espacio para escribir los archivos.

Respuesta

Hay dos razones probables por las que esto podría suceder: no tiene permisos de escritura y ejecución en los directorios que conducen al directorio al que está intentando cargar, o vsftpd está configurado para no permitirle subir.

En el primer caso, use chmod y chown según corresponda para asegurarse de que su usuario tenga estos permisos en cada directorio intermedio. El bit de escritura permite al usuario afectado crear, renombrar o eliminar archivos dentro del directorio y modificar los atributos del directorio, mientras que el bit de lectura permite al usuario afectado enumerar los archivos dentro del directorio. Dado que los directorios intermedios en la ruta también Para afectar esto, los permisos deben configurarse de manera adecuada hasta el destino final al que desea realizar la carga.

En el último caso, consulte su vsftpd.conf. write_enable debe ser verdadero para permitir la escritura (y es falso por defecto). Hay buena documentación sobre este archivo de configuración en man 5 vsftpd.conf.

Comentarios

  • Ninguno de estos parece ser el problema. Intenté modificar todo a 777 (inseguro) y configurar write_enable = YES, pero aún obtengo este mensaje de error inútil.
  • @Cerin, ¿pudiste arreglarlo? Si es así, ¿puedes compartir los detalles?

Responder

¿Podrías probar esto?

chown -R ftpusername /var/www/html 

Comentarios

  • chmod 757 -R / var / www / html
  • @Hern á nEche, gracias por el dato, había estado buscando durante horas y esto finalmente solucionó mi problema.
  • ¿Podrías explicar la situación? ¿Está esto en el servidor? o localmente?
  • @Hern á nEche Oye, a mí también me funcionó, pero es seguro. No estaba ‘ t trabajando con 755
  • @Hern á nEche debería hacer que esta sea una respuesta separada. Tu sugerencia funcionó para mí donde nada más funcionó.

Responder

El comando ftp put /path/to/local_file no funciona con vsftpd. Intente lo siguiente:

ftp put /path/to/local_file remote_file_name 

Puede elegir cualquier nombre que desea para el remote_file_name, pero debe especificar uno.

Comentarios

  • Es posible que desee considerar agregar más detalles a su respuesta (por ejemplo, alguna documentación que respalde la validez de su solución ‘).
  • Esto sucede porque (y si) /path/to/ no ‘ t existe (y / o no ‘ t accesible a través de la sesión FTP) en el servidor. Es por eso que ftp put local_file no funciona sin un destino explícito. (Sugerencia: verifique la línea local: … remote: … en el cliente FTP.)
  • ¡Me funcionó! 🙂

Respuesta

El directorio de inicio de FTP (ftp_home_dir) probablemente esté desactivado en SeLinux. Para ver el estado de sus archivos de control ftpd, emita: getsebool -a y localice la sección ftpd. Puede notar que ftp_home_dir está desactivado. Para activarlo, use el siguiente comando: setsebool -P ftp_home_dir=1

Verifique su entrada usando getsebool -a, luego intente cargar otra vez.

Nota: Ignore los signos de puntuación

Respuesta

Tuve el mismo problema y solucioné el cambio de SELinux a Permitir escribir en la carpeta que configuré para ser utilizada por vsftp = /var/ftp/pub.

Estos enlaces pueden ser útiles:

Si no quiere ir más allá con su SELinux, no lo cambie, así verá como predeterminado /etc/selinux/config

SELINUX=enforcing 

luego simplemente ejecute los comandos como root o con sudo:

sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1 

como ya se describió anteriormente en otro comentario.

Respuesta

Pruebe esto

chmod 757 -R /var/www/html 

Respuesta

Compruebe su vsftpd.conf para esta configuración:

guest_enable=YES # set it to NO then restart the vsftpd service. 

Si se establece en YES, también provocará el 553 Could not create file.

De : http://www.vsftpd.beasts.org/vsftpd_conf.html

guest_enable Si está habilitado, todos los inicios de sesión no anónimos se clasifican como inicios de sesión de «invitado». Un inicio de sesión de invitado se reasigna al usuario especificado en el Configuración de guest_username.

Predeterminado: NO

Respuesta

El siguiente parámetro le dará acceso a ftpd para escribir en cualquier lugar:

setsebool -P ftpd_full_acess=true 

No utilice ftpd_anon_write a menos que desee que se permitan cargas anónimas.

A nswer

En mi caso, el problema fue con el sistema de archivos.

Había un espacio pero el sistema de archivos se quedó sin inodos df -i

# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01 

Responder

Otra posibilidad: verifique las cuotas de disco para usuario / grupo

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Respuesta

Es probable que tenga caracteres no admitidos en el nombre de archivo

Respuesta

En mi caso, el usuario de ftp no tenía permisos en el directorio en el que estaba .

Acababa de olvidarme de ingresar al directorio de destino, para el cual tenía los permisos adecuados.

Respuesta

En mi caso (CentOS7 + vsftpd) cambiando los permisos del directorio a 775 mediante el comando » chmod 775 / home / u ser / ftpdir / » no ayudó.

Revisé el estado de selinux con el comando » sestatus «, estaba habilitado, enumero las opciones relacionadas con ftp: » getsebool -a | grep ftp »

y habilitó la opción deshabilitada ftpd_full_access mediante el comando » setsebool ftpd_full_access en «. Luego comenzó a escribir el archivo.

Respuesta

Para Fedora23 ejecute los comandos:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Me funcionó.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *