¿Cómo funcionan local_umask y file_open_mode?

11

Tuve algunos problemas con los permisos de archivos cuando los usuarios locales subieron sus archivos a través de vsftp a un servidor.

Quería que los archivos tuvieran todos los permisos 766. Después de muchas pruebas y errores, descubrí que tenía que establecer la configuración de esta manera:

local_umask=011
file_open_mode=0777

Pero no sé por qué esto da como resultado 766 permisos. ¿Alguien puede explicar esto?

OrangeTux
fuente

Respuestas:

13

El daemeon vsftpd creará permisos de archivo como 0777 . De eso, se resta local_umask( 0011 ). Esencialmente, umask elimina los permisos que no desea que tengan los usuarios. Esto da como resultado que los permisos de archivo del usuario se establezcan en 0766 .

Para obtener más información, consulte este artículo sobre permisos de archivos .

Ignacio Vazquez-Abrams
fuente
2
Sí, lo tengo, sé el truco. Pero, ¿cómo funciona esto? ¿Por qué no puedo configurar solo 766?
OrangeTux
1

El valor de umask se resta de la configuración del modo abierto. Si no proporciona un valor de umask personalizado, se utiliza el valor predeterminado (077), lo que genera un resultado que no desea.

Timo Reimann
fuente
-1

Obtiene este permiso porque:

1) Configurando local_umask = 011 le dice al vsftp que establezca:

0: leer, escribir y ejecutar 1: leer y escribir 1: leer y escribir

Eso es igual a chmod 766.

2) El valor de file_open_mode = 0777 no se analiza,

Aquí puede encontrar una muy buena explicación de lo que son umask y cómo usarlo: https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

Fernando Kosh
fuente
Esta no es una respuesta a la pregunta. (1) El OP quiere archivos protegidos 766, no 666, por lo que está abordando el escenario incorrecto. (2) El OP tiene una configuración que funciona. La pregunta es por qué funciona. No has abordado eso.
Scott
Ok, @Scott, editó la respuesta.
Fernando Kosh