¿Cómo configurar umask para un usuario del sistema?


14

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

Respuestas:


14

Hay tres formas normales de configurar la máscara de usuario 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 de shell, p. Ej. /etc/profile

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

¿Pero supongo que estás tratando de iniciar un demonio con una máscara personalizada?

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

Sus principales opciones son:

  1. poner umasken su script de inicio (haga un grep umask /etc/init.d/*para un ejemplo)
  2. configure init para iniciar el programa con una umask personalizada ( systemd.exec upstart umask )
  3. si usa start-stop-daemon, pase la opción umask
  4. modificar el programa en sí para llamar a la función umask o al sistema

¿Sabes cómo configurar una umask para SSHFS (sftp-server) en Arch Linux (que usa systemd)? Como señaló, las primeras 3 opciones que enumeró no tienen ningún efecto.
MountainX-for-Monica

2

Los usuarios del sistema difieren 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 generalmente están por debajo de un umbral arbitrario).

En el caso general, casi no tienes suerte. Puede usar PAM para configurar la umask, pero PAM selecciona comportamientos basados ​​en otras cosas además de estas tres diferencias.

En otras palabras, no puede hacer que PAM distinga entre usuarios de 'sistema' y 'no-sistema'. Esto te deja con dos opciones:

  • Puede usar PAM para configurar la máscara de usuario para todos (por ejemplo, registrarse /etc/login.defs), luego configurar explícitamente la máscara de usuario para usuarios que no son del sistema /etc/bash.bashrc(o similar);

  • O puede escribir su propio módulo PAM para hacer esto. Creo que esto sería bien recibido por muchas personas, ya que configurar umask es una solicitud común.

Por favor tome esta respuesta con una generosa pizca de sal. Este tipo de solicitud es bastante común, y no me sorprendería si ahora existe una forma mejor / adecuada.


1
Ya hay un módulo PAM llamado pam_umask . El problema es que solo funciona en el momento de iniciar sesión.
Mikel

Ah, creo que lo sabías pam_umask, pero tal vez no pam_succeed_if. Con pam_succeed_if , puede hacer que cualquier otro módulo se aplique solo a un usuario o grupo dado. Pero todavía no creo que PAM ayude aquí.
Mikel

1

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

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

Extrañamente no pude encontrar el script de inicio (normalmente en /etc/init.d/ pero en un 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 tienen métodos similares, lo que podría ayudar en casos específicos.


Pero, ¿cómo pudiste escribir "umask 002" en este archivo?!?!? Recibo un error de permiso denegado incluso como root / sudo y, según Apple, incluso las raíces no pueden escribir / cambiar nada en el directorio / usr / sbin support.apple.com/en-gb/HT204899
Schurik
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.