¿Cómo configurar una máscara para un usuario del sistema?

¿Cómo configurar una máscara para un usuario del sistema?

¿Es posible configurar umaskpara un usuario del sistema (creado con useradd --system username)?

Respuesta1

Hay tres formas normales de configurar la umask de un usuario.

  1. Establecer UMASKen/etc/login.defs
  2. Agregue pam_umask.soa su configuración PAM en/etc/pam.d
  3. Configúrelo en los archivos de inicio del shell, por ejemplo/etc/profile

No hay diferencia entre los usuarios del sistema y los usuarios normales a este respecto.

Pero supongo que estás intentando iniciar un demonio con una máscara de usuario personalizada.

El problema es: todas las opciones anteriores ocurren cuando un usuario inicia sesión. Si está ejecutando un demonio, nunca inicia sesión. Se inicia con init, luego se ejecuta como root o llama setuidpara ejecutar como el usuario del sistema que usted especifique. .

Tus principales opciones son:

  1. coloque umasksu script de inicio (haga un grep umask /etc/init.d/*ejemplo)
  2. configure init para iniciar el programa con una máscara de usuario personalizada (systemd.exec máscara de usuario advenediza)
  3. si lo usa start-stop-daemon, pase elopción de máscara
  4. modificar el programa en sí para llamar almáscarafunción o llamada al sistema

Respuesta2

Los usuarios del sistema se diferencian de los "normales" en tres formas: caducidad de la contraseña, directorio de inicio (los usuarios del sistema no tienen uno) y UID (los usuarios del sistema suelen estar por debajo de algún umbral arbitrario).

En el caso general, casi no tienes suerte. Puede usar PAM para configurar la umask, pero PAM selecciona comportamientos basándose en cosas distintas a estas tres diferencias.

En otras palabras, no se puede lograr que PAM distinga entre usuarios del "sistema" y "que no pertenecen al sistema". Esto te deja con dos opciones:

  • O usa PAM para configurar la umask para todos (por ejemplo, registrarse /etc/login.defs), luego configura explícitamente la umask para usuarios que no pertenecen al sistema en /etc/bash.bashrc(o similar);

  • O escribe tu propio módulo PAM para hacer esto. Creo que muchas personas agradecerían esto, ya que configurar la umask es una solicitud común.

Tome esta respuesta con una generosa pizca de sal. Este tipo de solicitud es bastante común y no me sorprendería que ahora exista una forma mejor o más adecuada.

Respuesta3

Como sugiere @Mikel, si está intentando configurar una cuenta del sistema que es un demonio, intente configurar el demonio mismo.

Llegué a esta pregunta buscando cómo configurar la umask para la cuenta _www en MacOS. Si bien esto es difícil como sugieren las respuestas anteriores, descubrí que podía resolverlo configurando el servicio Apache como (en este caso) el usuario == un demonio.

Curiosamente no pude encontrar el script de inicio (normalmente en /etc/init.d/ pero en una Mac en Library/LaunchDaemons/), pero con la ayuda de:http://krypted.com/mac-security/apache2-umasks/Descubrí que Apache tiene su propio script de entorno específico.

$ sudo vim /usr/sbin/envvars
    umask 002

Posiblemente otros demonios tengan métodos similares, lo que podría ayudar en casos específicos.

información relacionada