Los permisos de archivos cargados predeterminados de vsFTPd en Ubuntu no funcionan

14

Tengo un servidor que ejecuta Ubuntu 12.10 x64 , y la última versión de vsFTPd.

Mi usuario example.com tiene su carpeta de inicio activada /var/www/example.com,

777Creé una carpeta public_html dentro y le di permisos, y eliminé los permisos de escritura de la carpeta de usuario doméstico. Todo funciona bien pero:

Cada archivo que subo por FTP (usando SmartFTP) obtiene un chmod de 0.

Mi vsftpd.confsolo tenía una línea relacionada:

local_umask=022.

He tratado de cambiar a:

file_open_mode=777
local_umask=002

Entonces mis archivos se 775cargarán tan pronto como se carguen.

Pero solo mis carpetas cargadas obtienen 775permisos.

Mis archivos cargados obtienen 1411 permissions

¿Alguien puede ayudarme a resolver eso?

lucasmx
fuente
debe dar permiso al usuario FTP.
Gex

Respuestas:

11

Terminé usando

file_open_mode=0777
local_umask=022

en el vsftpd.conf. El problema era que tanto el usuario FTP como el usuario de www-data necesitaban permisos para escribir, así que tuve que unir www-data y ftpuser al grupo de usuarios de www-data, y CHMOD -R 775 todos los archivos en / var / www - de esa manera, con 775 CHMOD, el grupo tendría permiso para leer, escribir y ejecutar. Ahora está funcionando perfectamente.

lucasmx
fuente
1
no olvide reiniciar el servidor FTP: sudo service vsftpd restart
Nahid
7

Tengo mi respuesta:

Como www-data es el usuario responsable del servidor web y su usuario normal es responsable del servidor ftp, primero debe hacer que ambos sean miembros del mismo grupo: el grupo www-data.

Crear usuario personalizado:

useradd –d /var/www/asasd.com -g www-data -m yourusername de esta manera, el directorio de inicio será /var/www/asasd.com y su usuario estará en el grupo www-data .

después de esto, cambie el pase de usuario escribiendo passwd.

Luego, debe crear una carpeta public_html dentro de la carpeta de inicio de su nombre de usuario , ya que el FTP no podrá escribir en la raíz de su carpeta de inicio, debe crear una subcarpeta.

Elimine los permisos de escritura de su carpeta de nombre de usuariochmod a-w /var/www/asasd.com

Luego, aplique nuevos permisos para la subcarpeta: chmod -R 775 /var/www/asasd.com/public_html (tenga en cuenta que debe usar 775 chmod porque necesita permisos de escritura de grupo, no permisos de escritura de usuario, ya que desea que todo el grupo (ftp y www-data) pueda escribir) Entonces, sea dueño de carpeta para los datos de www chown -R www-data:www-data /var/www/asasd.com/public_html

De esa manera, debe poder usar FTP y tener un servidor web funcionando.

¡Buena suerte!

Es curioso que esta información sea tan difícil de encontrar. ¿Las personas ya no comparten conocimientos?

lucasmx
fuente
"primero debe hacer que ambos sean miembros del mismo grupo: el grupo www-data" ¿Cómo poner a mi usuario ftp en el grupo www-data?
Negro
Funcionó perfecto. Gracias @lucasmx
Enrique Becerra
0

También tuve un problema, ya que el permiso de archivo se cambia cuando subo un archivo a través de mi ftp. Esto se soluciona con un cambio de línea en mivsftpd.conf

local_umask=val(like 022,007,etc.,)

vijay
fuente
¿Te importa mejorar y abrir esto un poco? ¿Por qué es mejor que las alternativas anteriores y lo que en realidad hacen , ya que este tipo de sintaxis no se describe en la página del manual en absoluto: local_umasktiene que ser un solo valor, y debe tener 0como prefijo para el valor octal.
Esa Jokinen
-4

necesita cambiar la propiedad de ese archivo:

chown root:root /home/username
Gex
fuente